如果特定列范围内缺少任何值,如何更新数据框中的列值?

时间:2019-11-06 19:46:08

标签: python pandas dataframe

我有一个带有df80000 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

在这方面的任何帮助都将不胜感激。干杯。

3 个答案:

答案 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