[英]Using Pandas join to fill in columns
我有兩個大致看起來像的數據幀
(ID) (Category) (Value1) (Value2)
111 1 5 7
112 1 3 8
113 2 6 9
114 3 2 6
和
(Category) (Value1 Average for Category) (Value2 Average for Category)
1 4 5
2 6 7
3 9 2
最終,我想加入兩個數據幀,以便每個 ID 可以在它所在的行中具有其類別的平均值。 我無法找到加入/合並/等的正確方法。 這將通過檢查來自其他 DateFrame 的類別來填充列。 有誰知道從哪里開始?
只需在第一個數據幀上執行df1.groupby(['ID', 'Category']).transform(func='mean')
即可獲得所需的數據幀。
您只是在尋找join
,在pd.merge
中我們使用pd.merge
,如下所示:
df3 = pd.merge(df1, df2, on='Category')
ID Category Value1 Value2 Value 1 Average Value 2 Average
0 111 1 5 7 4 5
1 112 1 3 8 4 5
2 113 2 6 9 6 7
3 114 3 2 6 9 2
pandas
合並的官方文檔:
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.merge.html
這是關於連接的一個很好的解釋: Pandas Merging 101
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.