如何遍历dataframe的列?

2024-05-19 09:48:28 发布

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

我要浏览数据框的所有列。因此,我将获得列的特定数据,使用这些数据,我必须为另一个数据帧计算。 我有:

                         DP1         DP2         DP3         DP4         DP5         DP6         DP7         DP8        DP9       DP10       Total
OP1                  357848.0   1124788.0   1735330.0   2218270.0   2745596.0   3319994.0   3466336.0   3606286.0  3833515.0  3901463.0   3901463.0
OP2                  352118.0   1236139.0   2170033.0   3353322.0   3799067.0   4120063.0   4647867.0   4914039.0  5339085.0        NaN   5339085.0
OP3                  290507.0   1292306.0   2218525.0   3235179.0   3985995.0   4132918.0   4628910.0   4909315.0        NaN        NaN   4909315.0
OP4                  310608.0   1418858.0   2195047.0   3757447.0   4029929.0   4381982.0   4588268.0         NaN        NaN        NaN   4588268.0
OP5                  443160.0   1136350.0   2128333.0   2897821.0   3402672.0   3873311.0         NaN         NaN        NaN        NaN   3873311.0
OP6                  396132.0   1333217.0   2180715.0   2985752.0   3691712.0         NaN         NaN         NaN        NaN        NaN   3691712.0
OP7                  440832.0   1288463.0   2419861.0   3483130.0         NaN         NaN         NaN         NaN        NaN        NaN   3483130.0
OP8                  359480.0   1421128.0   2864498.0         NaN         NaN         NaN         NaN         NaN        NaN        NaN   2864498.0
OP9                  376686.0   1363294.0         NaN         NaN         NaN         NaN         NaN         NaN        NaN        NaN   1363294.0
OP10                 344014.0         NaN         NaN         NaN         NaN         NaN         NaN         NaN        NaN        NaN    344014.0
Total               3671385.0  11614543.0  17912342.0  21930921.0  21654971.0  19828268.0  17331381.0  13429640.0  9172600.0  3901463.0  34358090.0
Latest Observation   344014.0   1363294.0   2864498.0   3483130.0   3691712.0   3873311.0   4588268.0   4909315.0  5339085.0  3901463.0         NaN 

从这个表中,我想计算这个公式:在DP1列,总计/最后一次观察,这个答案除以DP2列总计。像这样,我们必须计算所有列并将其保存在另一个数据帧中

我们需要这样的排:

Weighted Average     3.491   1.747   1.457   1.174   1.104   1.086   1.054   1.077   1.018 

我们尝试了以下代码:

LDFTriangledf['Weighted Average'] =CumulativePaidTriangledf.loc['Total','DP2']/(CumulativePaidTriangledf.loc['Total','DP1'] - CumulativePaidTriangledf.loc['Latest Observation','DP1'])

Tags: 数据nanlatestloctotalaverage总计observation
1条回答
网友
1楼 · 发布于 2024-05-19 09:48:28

您可以从.loc中删除列名,只需^{}即可获得下一列的Total。这使您可以在一次操作中将公式应用于所有列:

CumulativePaidTriangledf.shift(-1, axis=1).loc['Total'] / (CumulativePaidTriangledf.loc['Total'] - CumulativePaidTriangledf.loc['Latest Observation'])

# DP1      3.490607
# DP2      1.747333
# DP3      1.457413
# DP4      1.173852
# DP5      1.103824
# DP6      1.086269
# DP7      1.053874
# DP8      1.076555
# DP9      1.017725
# DP10          inf
# Total         NaN
# dtype: float64

以下是三个组成部分所做工作的细分:

^{tb1}$

相关问题 更多 >

    热门问题