Python:如何在行和列上轻松获得小计?

时间:2017-09-11 14:50:58

标签: python python-3.x pandas

我是Python的新手,我正在努力让Pandas / XlsWriter做我想做的事。

我从CSV中开始使用一组数据,然后将其加载到Dataframe中并进行操作。最后,在做了PIVOT后,我最终得到了如下所示的数据。突出显示的PINK表示我试图让Pandas / XLSwriter以编程方式生成。所以行数和列数都是可变的。

两个问题:

1)请告知我如何找到每行和每列的小计?

2)如何应用数字格式将其设为xxx,xxx,xxx.00?

奖金问题:

你会推荐OpenPYXL而不是XLSWriter(反之亦然)以及为什么?

enter image description here

2 个答案:

答案 0 :(得分:1)

这主要是一个重复的问题:Pandas: sum DataFrame rows for given columns

您正在根据文档查找passenger.https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.sum.html

对于您的具体情况,它看起来像:

df.sum()

格式化只是:

# New column with row totals
df['Daily Total'] = df.sum(axis=1, numeric_only=True)
# New row with column totals
df = df.append(df.sum(numeric_only=True), ignore_index=True)

或者格式化不是日期/交易对象列的所有内容,如果不是索引,您可以这样做:

df[col] = df[col].map('{:,.2f}'.format)

答案 1 :(得分:0)

df["Daily Total"] = df["Company A"] + df["Company B"] + df["Company C"]+ df["Company D"]