首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从已过滤的Excel文件写入CSV

从已过滤的Excel文件写入CSV
EN

Stack Overflow用户
提问于 2020-02-11 01:21:06
回答 1查看 32关注 0票数 1

我对使用Python非常陌生,但我正在尝试教这只老狗新的技巧。

此程序的目标是搜索包含多张工作表的excel工作簿,仅提取搜索中的行项目,并给出列出单位名称和返回的搜索项目的输出。它当前转到一个文本文件,每个单元的输出如下所示:

在朝圣者PRD LV橡木(COMPASS-20098)以下项目未经批准或构成产品成本增加的风险描述品牌数量总价115土豆AU磨砂3 cs $162.69土豆珍珠EXCEL CLS 2 cs $123.48 149火腿丁.25 IN CUBE FARMLND 1 cs $24.95150比萨奶酪圆5散装托尼1 cs $45.58酱汁ALFREDO邮袋GLUTFR STOUFER 1 cs $47.87

在下面的代码中,我希望能够将输出转换为csv文件(或多个csv文件)或excel文件(可能每个设备都是一个列出了搜索查找的工作表),而不是输出为具有相同输出信息的文本文件(即设备名称和列中的搜索项)。

代码语言:javascript
运行
复制
import os
import openpyxl
import csv


sheet_data = []   
wb = openpyxl.load_workbook('ProductFrequency 092719_021020 by Unit.xlsx')
ws = wb.active

recordDict = {}

for i in range(9, ws.max_row+1):
    itemNum=ws['A'+str(i)].value
    description=ws['B'+str(i)].value
    quantity=ws['H'+str(i)].value

    recordDict.setdefault(itemNum,{})
    recordDict[itemNum][description] = quantity
    #print(itemNum, description, quantity)

import pandas as pd
import numpy as np
pd.set_option('display.max_rows', 100000)


resultsFile = open('Results_UNIT_092719_021020.txt', 'w')
resultsFile.close()
c = csv.writer(open("Results_UNIT_092719_021020.csv", 'w'))


count=0


while count < 78:

    df = pd.read_excel('ProductFrequency 092719_021020 by Unit.xlsx', sheet_name=count, usecols=[0,1,2,7,8,9])
    unitName = df.iloc[0,0]


    df = pd.read_excel('ProductFrequency 092719_021020 by Unit.xlsx', sheet_name=count, skiprows=8, usecols=[0,1,2,7])
    df = df.fillna(value="")

    new_df = df.loc[(df['Dist #'].str.contains('4014320')) |(df['Description'].str.contains('ALFREDO')) | (df['Description'].str.contains('CARNITAS')) | (df['Description'].str.contains('PORK CHOP'))  | (df['Brand'].str.contains('AUSTBLU')) | (df['Brand'].str.contains('CMBLRSV')) | (df['Description'].str.contains('GRAVY SAUSAGE COUNTRY RTU')) | (df['Description'].str.contains('SCRATCH RDY')) | (df['Description'].str.contains('BEEF ROAST POT')) | (df['Description'].str.contains('SALISBURY')) |  (df['Description'].str.contains('FC')) |  (df['Description'].str.contains('BRAISED')) |  (df['Description'].str.contains('TROPICAL')) | (df['Brand'].str.contains('STCLAIR') | (df['Brand'].str.contains('AUBONPN')))]
    resultsFile = open('Results_UNIT_092719_021020.txt', 'a')
    resultsFile.write('In '+unitName+' the following items are not approved \n')
    resultsFile.write(str(new_df)+'\n')
    resultsFile.write('\n')
    resultsFile.write('\n')

    resultsFile.close()


    print('In '+unitName+' the following items are not approved'+'\n\n')
    print(new_df)
    print('\n')

    count +=1
EN

Stack Overflow用户

发布于 2020-02-13 01:50:07

首先: CSV (逗号分隔值)没有任何“真正”的格式。因此,没有任何类型的过滤(或“隐藏”数据),也没有“工作表”。它实际上只是简单的数据,中间有逗号,例如

代码语言:javascript
运行
复制
"
a,b,c
d,e,f
....
"

如果这对您的问题没有帮助,请更详细地解释您试图实现的目标(也许可以提供所需输出的示例)。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60155304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档