如何为 Pandas 数据帧中的一列创建"Total"行



所以我用操作系统模块从文件名中创建了一个DF

文件名包括美元金额,我希望能够创建一行,该行的总额仅为DF(索引3(的该列中的金额

然而,当我遵循以下代码结构时:

File_Name.loc['Total'] = File_Name.sum()

我得到这个:

Invoice  ...                                             Amount
30                                                  6515  ...                                             401.01
Total  0822OH082522KTR1987000084201987000084481987000...  ...  478.88550.0030.1032.3912.0432.521020.4729.1442...

我希望它看起来像这样:

Invoice         Vendor   Amount
30          6515        Expense   401.01
Total                          198556.79

任何帮助都将不胜感激!

Pandas刚刚在Styler中发布了一个新功能(v1.5.0(。CCD_ 2用于数据的显示,而CCD_。因此,将不同的DataFrames组合和构造用于显示目的的能力是有用的。Styler允许为不同的表以不同的方式配置格式化输出。例如,一列可能有整数值,但算术平均值通常是带有多个小数的浮点值。

在讨论这个用例时,请参阅Styler.concat的文档。https://pandas.pydata.org/docs/dev/reference/api/pandas.io.formats.style.Styler.concat.html

您在Amount中得到的长数字可能是字符串串联的结果:

'478.88' + '550.00' + '30.10' + '32.39'

输出

478.88550.0030.1032.39

因此,第一步是将列Amount强制转换为带有File_Name['Amount'].astype('float')的浮点。

您可以添加Amount的总和,并使用获得您想要的视觉效果

df.loc['Total', 'Amount'] = df['Amount'].sum()
df.loc['Total'] = df.loc['Total'].fillna('')

尽管如此,我强烈建议不要把panda当作Excel来使用。虽然Excel样式在如此繁重的界面下工作时很方便,但从编程的角度来看,这是有问题的:现在你将有一个额外的数据点,它在Amount中有一个大值,并且有很多空字符串。

最新更新