簡體   English   中英

用字典替換 pandas dataframe 中的值

[英]Replace values in a pandas dataframe with a dict

我將有一個 pandas dataframe 並尋找一種方法來將column = c的值替換為column = acolumn = 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.

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