例如,我有以下数据框df
r1 r2
1 False 10
2 True 20
3 True 40
如果r1为True,我想将r2的值更改为其索引值的索引值
pow(index, index)
期望的结果是
r1 r2
1 False 10
2 True 4
3 True 27
我知道如何定位需要更改值的单元格,但我只知道如何将它们设置为常量,即0
df.loc[df['r1'] == True, 'r2'] = 0
但我不知道如何将其设置为索引
的功能感谢您的帮助
答案 0 :(得分:2)
使用pd.DataFrame.mask
df.r2.mask(df.r1, df.index ** df.index, inplace=True)
df
r1 r2
1 False 10
2 True 4
3 True 27
答案 1 :(得分:1)
使用df.r1
查找索引,然后索引r2
并重新分配。
idx = df[df['r1']].index
df.loc[df['r1'], 'r2'] = idx ** idx
print(df)
r1 r2
1 False 10
2 True 4
3 True 27