Python:创建新列,该列等于从第9列开始的所有列的总和

2024-10-03 00:22:03 发布

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

我想在我的dataframe中创建一个名为“test”的新列,它等于从第9列开始到dataframe末尾的所有列的总和。这些列都是数据类型float。在

下面是我尝试过但没用的代码-->;返回“test”列中的所有NaN值:

df_UBSrepscomp['test'] = df_UBSrepscomp.iloc[:, 9:].sum()

Tags: 代码testgtdataframedfnanfloat数据类型
1条回答
网友
1楼 · 发布于 2024-10-03 00:22:03

如果我理解你的问题,你想要从第9列开始的逐行求和。我相信你想要.sum(axis=1)。请参阅下面的示例,使用第2列而不是9列以了解可读性。在

df = DataFrame(npr.rand(10, 5))
df.iloc[0:3, 0:4] = np.nan # throw in some na values
df.loc[:, 'test'] = df.iloc[:, 2:].sum(axis=1); print(df)
         0        1        2        3        4     test
0      NaN      NaN      NaN      NaN  0.73046  0.73046
1      NaN      NaN      NaN      NaN  0.79060  0.79060
2      NaN      NaN      NaN      NaN  0.53859  0.53859
3  0.97469  0.60224  0.90022  0.45015  0.52246  1.87283
4  0.84111  0.52958  0.71513  0.17180  0.34494  1.23187
5  0.21991  0.10479  0.60755  0.79287  0.11051  1.51094
6  0.64966  0.53332  0.76289  0.38522  0.92313  2.07124
7  0.40139  0.41158  0.30072  0.09303  0.37026  0.76401
8  0.59258  0.06255  0.43663  0.52148  0.62933  1.58744
9  0.12762  0.01651  0.09622  0.30517  0.78018  1.18156

相关问题 更多 >