![](/img/trans.png)
[英]Replace values in pandas dataframe column with different replacement dict based on condition
[英]Replace values in a pandas dataframe with a dict
我將有一個 pandas dataframe 並尋找一種方法來將column = c
的值替換為column = a
和column = b
的平均值。
作為 Python 的新手,我已經檢查了替換 function,以及創建字典來執行替換的可能性。 我失敗的嘗試如下所示。
如果有人有任何建議,我會很高興。
df = pd.DataFrame({'column': ['a', ' b', 'a', 'b', 'b', 'a', 'b', 'c', 'd' ], 'value': range(0,9)})
dict = {"(df[df['column'] == 'c']['value'].values)": "df[df['column'] == 'a']['value'].mean()"}
df.replace(dict)
您可以通過DataFrame.loc
設置和 select 列value
:
df.loc[df['column'] == 'c', 'value'] = df.loc[df['column'] == 'a', 'value'].mean()
print (df)
column value
0 a 0.000000
1 b 1.000000
2 a 2.000000
3 b 3.000000
4 b 4.000000
5 a 5.000000
6 b 6.000000
7 c 2.333333
8 d 8.000000
或者,如果需要測試多個值,請使用Series.isin
:
df.loc[df['column'] == 'c', 'value'] = df.loc[df['column'].isin(['a','b']), 'value'].mean()
print (df)
column value
0 a 0.000000
1 b 1.000000
2 a 2.000000
3 b 3.000000
4 b 4.000000
5 a 5.000000
6 b 6.000000
7 c 3.333333
8 d 8.000000
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.