我有一个像这样的数据帧:
col0 col1 col2
0 0 1 1
1 1 1 1
2 1 0 1
3 0 0 1
我想对所有值使用条件语句。
陈述是1 = a,0 = b
所以我希望得到这样的结果:
col0 col1 col2
0 b a a
1 a a a
2 a b a
3 b b a
我知道pandas提供布尔函数。 (ex)dfs = df> 0
但我不知道如何解决这个问题。 我试过应用函数来解决这个问题。 但我失败了。 如果你能给我一个提示,我将不胜感激。
答案 0 :(得分:1)
您在询问选项3,但我认为选项1是执行此操作的最佳方法。
使用replace
和字典:
df.replace({0:'b',1:'a'})
输出:
col0 col1 col2
0 b a a
1 a a a
2 a b a
3 b b a
使用np.where
pd.DataFrame(np.where(df,'a','b'), index=df.index, columns=df.columns)
输出:
col0 col1 col2
0 b a a
1 a a a
2 a b a
3 b b a
使用applymap
和lambda函数:
df.applymap(lambda x: 'a' if x == 1 else 'b')
输出:
col0 col1 col2
0 b a a
1 a a a
2 a b a
3 b b a