【发布时间】:2018-06-04 11:34:30
【问题描述】:
来自具有以下格式的 csv 文件:
Date,Data
01-01-01,111
02-02-02,222
03-03-03,333
我正在使用以下代码计算每月平均值:
data = pd.read_csv("input.csv")
data['Month'] = pd.DatetimeIndex(data.reset_index()['Date']).month
mean_data = data.groupby('Month').mean()
然后我使用以下命令输出一个 csv 文件:
mean_data.to_csv("test.csv")
它工作正常并给我以下输出:
Month,Data
01,01
02,02
03,03
04,04
...
但现在我想知道每月平均计算中包含了多少数据。为此我改变了:
mean_data = data.groupby('Month').mean()
作者:
mean_data = data.groupby(['Month']).agg(['mean', 'count'])
但问题来了。当我想输出 csv 时,我现在有一个奇怪的格式如下:
Data,Data,
mean,count,
Month,
01, 01,8,
02, 02,9,
03, 03,7,
04, 04,5,
这不是很方便。相反,我希望得到以下输出:
Month,Mean,Count
01,01,8
02,02,9
03,03,7
04,04,5
有人知道如何实现吗?
【问题讨论】:
-
请编辑您的示例以便重现。
Month,Data=01,01看起来不像正确的输出值。 -
啊,你只关心列名标题:
Month, Data mean, Data count... -
@smci - 这个空格和两行标题实际上让我很担心,当我想在以后重新读取数据时,这不是很方便。
-
好的,但重点是标题具有误导性,这与
to_csv无关,更多的是关于pandas 为聚合提供了多个函数的恼人默认列名,至少您的代码不是jezrael 的。建议您编辑标题以更准确。
标签: python pandas csv aggregate columnname