python - 在控制台中打印,但在格式化为 CSV 时不打印

标签 python excel pandas

所以我有一个程序将数据分组在一起,然后获取组的大小。在控制台中,它完美地打印组名称和计数。之后我做的唯一一件事就是使用 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/

相关文章:

python - 在 Linux 中实时监控鼠标坐标

Python:根据DataFrame中的列名创建新行

python - 将具有多索引的每日数据框转换为季度数据框

python - Pycharm 中没有名为 'pandas' 的模块

python - 从非 ascii 字符串解码 Python 3 中的转义 unicode

python - `mime.hasImage()` 返回 `true`,但 `mime.imageData()` 在 Linux 上返回 `None`

excel - 如何将变量传递到范围? (VBA)

excel - 如何计算Excel中给定范围内包含非空字符的单元格数量

excel - 在 Excel 365/VBA 7 中使用 gFortran dll

python - 从 pandas 的字符串列中删除非 ASCII 字符