【问题标题】:Pandas DataFrameGroupBy export to ExcelPandas DataFrameGroupBy 导出到 Excel
【发布时间】:2014-09-11 13:52:17
【问题描述】:

我正在尝试将分组记录的计数导出到 Excel。

我的 CSV 文件如下所示:

Date        Country   Sub  Source
2014-09-11    US      1    source1
2014-09-11    US      2    source2
2014-09-11    UK      1    source3
2014-09-11    US      1    source1
2014-09-11    IN      3    source4

我需要按 Country、Sub 和 Source 分组的记录数。

df = pd.read_csv('log.csv',sep='\t')
count = df.groupby(['Country','Sub','Source']).size()
count.to_excel('report.xls', index=False)

但我在运行时遇到错误:AttributeError: 'Series' object has no attribute 'to_excel'

是否不允许将 DataFrameGroupBy 导出到 Excel? 还有没有办法将带有计数信息的分组记录插入到 MySQL 数据库中?

【问题讨论】:

标签: python pandas export-to-excel sql-insert


【解决方案1】:
df = pd.read_csv('log.csv',sep='\t')
df = pd.DataFrame(df.groupby(['Country','Sub','Source']).size(),columns=['Count'])

你会得到:

                     Count
Country Sub Source        
IN      3   source4      1
UK      1   source3      1
US      1   source1      2
        2   source2      1

然后通过以下方式保存到excel:

df.to_excel('output.xls')

【讨论】:

    【解决方案2】:

    根据文档groupby 返回一个 GroupBy 对象。 to_excel 操作只能在DataFrame 上执行。您可以将 GroupBy 对象转换为 DataFrame,然后调用 to_excel 函数

    【讨论】:

    • groupby 确实 not 返回一个系列,但 groupby 对象的 .size() 方法可以。要将 Series 转换为 DataFrame,还可以使用to_frame() 方法。
    猜你喜欢
    • 1970-01-01
    • 2022-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-25
    • 2021-04-10
    • 2021-01-25
    相关资源
    最近更新 更多