Python:创建新列,该列等于从第9列开始的所有列的总和
我想在我的数据帧中创建一个名为“test”的新列,它等于从第9列开始到数据帧末尾的所有列的总和。这些列都是数据类型float 下面是我尝试过但无效的代码-->返回“测试”列中的所有NaN值: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
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而言,这是一个很好的演练。