[英]Replace Values of Multiple Columns in Pandas Dataframe More Efficiently
我有一个 DataFrame, df
,我想在其中替换几个值
用户 1 | 用户 2 | 用户 3 |
---|---|---|
苹果 | 哟 | 苹果 |
芒果 | 内存 | 芒果 |
而不是做
df['user1'] = df['user1'].replace(['apple','mango'], [0, 1])
df['user3'] = df['user1'].replace(['apple','mango'], [0, 1])
df['user2'] = df['user2'].replace(['yoo','ram'], [2, 3])
得到最终的DataFrame
用户 1 | 用户 2 | 用户 3 |
---|---|---|
0 | 2 | 0 |
1 | 3 | 1 |
有什么方法可以使上面的代码更有效,以便我可以用一行代码更改 apple、mango、yoo 和 ram 的值?
如果需要按每列的唯一值设置范围,请使用:
cols = ['user1','user2','user3']
s = df[cols].unstack()
df[cols] = pd.Series(pd.factorize(s)[0], index=s.index).unstack(0)
print (df)
user1 user2 user3
0 0 2 0
1 1 3 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.