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

Python:创建新列,该列等于从第9列开始的所有列的总和,python,indexing,sum,field,slice,Python,Indexing,Sum,Field,Slice,我想在我的数据帧中创建一个名为“test”的新列,它等于从第9列开始到数据帧末尾的所有列的总和。这些列都是数据类型float 下面是我尝试过但无效的代码-->返回“测试”列中的所有NaN值: df_UBSrepscomp['test'] = df_UBSrepscomp.iloc[:, 9:].sum() 如果我理解你的问题,你需要从第9列开始的行和。我相信您想要.sum(axis=1)。请参阅下面的示例,使用第2列而不是第9列以提高可读性 df = DataFrame(npr.rand(10

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

下面是我尝试过但无效的代码-->返回“测试”列中的所有NaN值:

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

如果我理解你的问题,你需要从第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

工作得很好!非常感谢。为什么需要添加(axis=1)?这是什么意思?对于轴=0与轴=1而言,这是一个很好的演练。