这是我的数据框架。
I A B C D E F
1 9 4 0 T F F
2 0 5 1 S X J
3 1 8 0 G G J以下是我的预期输出。我想替换A ==0中的if值,替换为D中的np.nan。
I A B C D E F
1 9 4 0 T F nan
2 0 5 1 nan X J
3 1 8 0 G G nan我想用A/B/C列的值替换D/E/F列上的值。例如,D列随A列的变化而变化。(A->D,B->E,C->F)
我尝试了这段代码,但没有改变值。
list1 = ['A', 'B', 'C']
list2 = ['D', 'E', 'F']
for i in list2:
for j in list1:
df[i] = np.where(df[j] == 0, np.nan, df[i])对于下面的代码,运行良好。但是有很多列,所以我想使用list和for句子。
df['D'] = np.where(df.A == 0, np.nan, df.D)发布于 2020-04-28 09:36:16
让我们做吧
df.loc[:,'D':].mask(df.loc[:,'A':'C'].eq(0).values)
D E F
0 T F NaN
1 NaN X J
2 G G NaN
df.loc[:,'D':]= df.loc[:,'D':].mask(df.loc[:,'A':'C'].eq(0).values)https://stackoverflow.com/questions/61471124
复制相似问题