使每列成为Dataframe的所有先前列的总和

2024-05-23 13:37:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据帧:

           2019 Jan  2019 Mar  2019 Apr  2019 May  2019 Jun
 CASC\n         2.0       2.0       2.0       1.0       2.0
 SpaceX\n       1.0       1.0       1.0       2.0       2.0

您可以使用以下代码获取:

import pandas as pd

data_dict = {
    '2019 Jan': {' CASC\n': 2.0, ' SpaceX\n': 1.0},
    '2019 Mar': {' CASC\n': 2.0, ' SpaceX\n': 1.0},
    '2019 Apr': {' CASC\n': 2.0, ' SpaceX\n': 1.0},
    '2019 May': {' CASC\n': 1.0, ' SpaceX\n': 2.0},
    '2019 Jun': {' CASC\n': 2.0, ' SpaceX\n': 2.0}
 }

pd.DataFrame.from_dict(data_dict)

我想让每一列都是前面所有列的总和,因此最终的数据帧如下所示:

           2019 Jan  2019 Mar  2019 Apr  2019 May  2019 Jun
 CASC\n         2.0       4.0       6.0       7.0       9.0
 SpaceX\n       1.0       2.0       3.0       5.0       7.0

我可以得到所有列的总和,并使用以下代码将其设置为新列:

df['Total'] = df.iloc[:,:].sum(axis=1)

这将导致以下数据帧:

           2019 Jan  2019 Mar  2019 Apr  2019 May  2019 Jun  Total
 CASC\n         2.0       2.0       2.0       1.0       2.0    9.0
 SpaceX\n       1.0       1.0       1.0       2.0       2.0    7.0

但这显然不是我想要的。相反,我希望每一列都作为前几列及其本身的“总计”。有人知道怎么做吗


Tags: 数据代码dfdatadictaprjunmar