【问题标题】:Creating csv file from pandas dataframe as per the sheet names in file from condition over a column根据文件中的工作表名称从pandas数据框创建csv文件,从条件超过一列
【发布时间】:2020-01-29 18:19:18
【问题描述】:

我有一个 excel 文件,其中有多个工作表 (6)。我正在编写一个 python 脚本来将每个单独的工作表转换为一个 csv 文件。

我的输入文件如下所示,例如 sheetname = class5

Name   ID  Result

Mark   11   Pass
Tom    22   Fail
Jane   33   Pass
Colin  44   Not Appeared

像这样我在 excel 中有多个工作表

我需要将它们转换为 csv 文件,其中只有“通过”和“失败”的候选人,而不是像这样的“未出现”候选人:

csv file to be created class5.csv which has content just:

Mark,class5
Tom,class5
Jane,class5

Note: No 'colin' as he did not appear

像这样的一张纸我有多张纸,所以我编写了读取 excel 并创建名称、类 csv 文件的脚本,但我无法从“结果”列中放置过滤器,因为不显示“未出现” ' 现在对于这段代码,我有所有的通过,失败并且没有出现

xls = pd.read_excel('path_of_file',sheet_name = None)
for sheet_name, df in xls.items():
    df['sheet'] = sheet_name
    df[['Name','sheet']].to_csv(f'{sheet_name}.csv', header=False)

需要知道如何将过滤器添加到我的结果列以仅删除“未出现”的学生姓名吗?

【问题讨论】:

    标签: excel python-3.x pandas csv


    【解决方案1】:

    您可以按条件过滤,也可以按列名Nameboolean indexingDataFrame.loc

    xls = pd.read_excel('path_of_file',sheet_name = None)
    for sheet_name, df in xls.items():
        df = df.loc[df["Result"] != 'Not Appeared', ['Name']].copy()
        df['sheet'] = sheet_name
        df.to_csv(f'{sheet_name}.csv', header=False)
    

    【讨论】:

    • 我在第一个(Dataframe.query)中都出现错误,错误是:return compile(source, filename, mode, PyCF_ONLY_AST) Result !='Not appeared' SyntaxError: invalid syntax however all syntax is correct 然而语法是正确的
    • @SachinKumar - 如果复制 '',有时会发生。顺便说一句,我发现问题是第二种解决方案,我忘记了 loc - 有必要将 df = df[df["Result"] != 'Not Appeared', ['Name']].copy() 更改为 df = df.loc[df["Result"] != 'Not Appeared', ['Name']].copy()
    • 布尔索引中的第二个我收到此错误:File "pandas\_libs\index.pyx", line 109, in pandas._libs.index.IndexEngine.get_loc Name: Final Review, Length: 241, dtype: bool, ['Name'])' is an invalid key
    • @SachinKumar - 每个 shetname 都有 3 列吗? Name, ID, Result?
    • 第二个我可以使用 loc 执行
    猜你喜欢
    • 2020-01-24
    • 2019-03-24
    • 2016-06-07
    • 1970-01-01
    • 2018-01-26
    • 2016-04-29
    • 2016-12-21
    • 2021-07-21
    • 2011-03-19
    相关资源
    最近更新 更多