我有一个带有df
和80000 rows
的Pandas数据框121 columns
。我要更新最后一列的值/将最后一列中的所有值更改为999,条件是其中我的第3列至第120列的数据中的任何行都有缺失值(甚至有一个缺失值)
例如,预期结果将是
Column 1 Column2 Column 3. Column 4......Column 120 Column 121
Row 1. 123 456. 244. NA. 3434. 999 #Update Column 121 value to 999
Row 2 123. NA. 444. 455 4545. 0 #Do not change existing value here
Row n. 123 343. NA. 234 3434 999 #Update Column 121 value to 999
在这方面的任何帮助都将不胜感激。干杯。
答案 0 :(得分:1)
df.loc[df[df.columns[2:120]].T.isna().any(), 'Column 121'] = 999
如@QuangHoang所述,将axis=1
传递到any()
将消除对T
的需求:
df.loc[df[df.columns[2:120]].isna().any(axis=1), 'Column 121'] = 999
答案 1 :(得分:1)
使用isna().any(1)
:
df['Column 121'] = np.where(df.iloc[:, 2:-1].isna().any(1), 999, df['Column 121'])
答案 2 :(得分:0)
尝试一下:
df.loc[df.iloc[:,3:120].isnull().sum(axis=1)>0, 'Column 121'] = 999