因此,我有一个程序将数据分组在一起,然后得到分组的大小。在控制台中,它可以完美打印组名和计数。之后,我唯一要做的就是使用to_csv将其放入csv中。但是在csv中,它仅显示组计数,而不显示组名称
for f in xFiles:
#Grabs just Reported Users
info = pd.read_excel(f, sheet_name="Reported Users")
df = df.append(info,ignore_index=True)
#Looking to sort based on color
df = df.groupby('Operator', as_index=False)['Operator'].size()
print(df)
#Writes to new file
df.to_csv('Weekly_Count_Per_OP.csv', index = False)
控制台输出如下:
Operator
A 45
B 11
C 52
D 23
但是,CSV如下:
45
11
52
23
每次运行脚本时也会显示此错误:
FutureWarning:Series.to_csv
的签名与DataFrame.to_csv
的签名对齐,并且参数'header'会将其默认值从False更改为True:请传递一个显式值以禁止该警告。
df.to_csv('Weekly_Count_Per_OP.csv',index = False)
答案 0 :(得分:0)
df.to_csv将忽略行名称,而不写入它们。尝试使用index = True。
答案 1 :(得分:0)
在您的代码中,df
实际上是groupby之后的series
,然后是一列上的sum
。您需要一个数据框,以便可以将其存储为csv
。
在下面使用。
df.groupby('Operator', as_index=False)['Operator'].size().to_frame('count').reset_index()
为进一步解释,请考虑以下示例。
df = pd.DataFrame({
'Operator':['A', 'A', 'A', 'B', 'B'],
})
print(df)
输出:
Operator
0 A
1 A
2 A
3 B
4 B
现在,让我们进行操作。
s = df.groupby('Operator', as_index=False)['Operator'].size()
print(type(s))
输出:
pandas.core.series.Series
在制作csv文件之前,您将需要一个数据框。因此,
df = df.groupby('Operator', as_index=False)['Operator'].size().to_frame('count').reset_index()
输出:
Operator count
0 A 3
1 B 2
然后,使用您的代码将其导出到csv文件。
df.to_csv('Weekly_Count_Per_OP.csv', index = False)