簡體   English   中英

更有效地替換 Pandas Dataframe 中多列的值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM