所以我有一个程序将数据分组在一起,然后获取组的大小。在控制台中,它完美地打印组名称和计数。之后我做的唯一一件事就是使用 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)
最佳答案
在您的代码中,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)
关于python - 在控制台中打印,但在格式化为 CSV 时不打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56654975/