【问题标题】:Saving pandas dataframe subsets to xlsx using df.to_excel使用 df.to_excel 将 pandas 数据帧子集保存到 xlsx
【发布时间】:2020-04-30 23:12:36
【问题描述】:

我有一个 csv,我想将其分解为单独的 excel 文件。当我尝试以下操作时,它正在创建单个文件但不进行过滤。我还是 python 的新手,我猜我在 for 循环中丢失了一行数据帧。感谢您的帮助!

import pandas as pd

# pull in csv
data = pd.read_csv('test.csv',encoding='UTF-8')   
df = pd.DataFrame(data)
df.fillna("", inplace = True)

# group by dealer
dfs = dict(tuple(df.groupby('Dealer')))

# for loop grouped by dealer
for name in dfs:
    writer = pd.ExcelWriter(str(name)+'.xlsx', engine='xlsxwriter')
    df.to_excel(writer, index= False, header= True, sheet_name= 'Sheet1')
    writer.save()
    print(name + ' file created.')

【问题讨论】:

    标签: python pandas dataframe for-loop xlsxwriter


    【解决方案1】:

    dfs 是字典时,您需要使用.items() 对其进行迭代。
    如果您在执行过程中对其进行迭代,则只会返回字典的键。

    正如您所怀疑的,您目前没有在 for 循环中创建任何新的 df。

    试试吧:

    # for loop grouped by dealer
    for name,df in dfs.items():
        writer = pd.ExcelWriter(str(name)+'.xlsx', engine='xlsxwriter')
        df.to_excel(writer, index=False, header=True, sheet_name='Sheet1')
        writer.save()
        print(name + ' file created.')
    

    【讨论】:

      猜你喜欢
      • 2021-10-26
      • 2020-04-13
      • 2016-06-18
      • 1970-01-01
      • 1970-01-01
      • 2016-10-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-19
      相关资源
      最近更新 更多