0
我想在我的數據框中創建一個名爲'test'的新列,該列等於從列號9開始的所有列的總和,數據幀的結尾。這些列都是數據類型float。Python:創建新列等於從列號9開始的所有列的總和
下面是我試過的代碼,但沒有奏效 - >給我回所有NaN值在「測試」列:
df_UBSrepscomp['test'] = df_UBSrepscomp.iloc[:, 9:].sum()
我想在我的數據框中創建一個名爲'test'的新列,該列等於從列號9開始的所有列的總和,數據幀的結尾。這些列都是數據類型float。Python:創建新列等於從列號9開始的所有列的總和
下面是我試過的代碼,但沒有奏效 - >給我回所有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)?這是什麼意思? – PineNuts0
[這](https://stackoverflow.com/questions/22149584/what-does-axis-in-pandas-mean)對'axis = 0'和'axis = 1'是一個很好的演練。 –