![](/img/trans.png)
[英]How to transform column values of a dataframe to another dataframe with different indexes?
[英]How to copy one DataFrame column in to another Dataframe if their indexes values are the same
創建具有名稱為“ keys”的列中具有某些重復單元格值的DataFrame之后:
import pandas as pd
df = pd.DataFrame({'keys': [1,2,2,3,3,3,3],'values':[1,2,3,4,5,6,7]})
我繼續創建另外兩個DataFrame,它們是原始DataFrame df
的合並版本。 這些新創建的DataFrames在“鍵”列下將沒有重復的單元格值:
df_sum = df_a.groupby('keys', axis=0).sum().reset_index()
df_mean = df_b.groupby('keys', axis=0).mean().reset_index()
如您所見, df_sum['values']
單元格的值全部加在一起。 df_mean['values']
單元格值是使用mean()
方法df_mean['values']
平均的。 最后,我將兩個數據框中的“值”列重命名為:
df_sum.columns = ['keys', 'sums']
df_mean.columns = ['keys', 'means']
現在,我想將df_mean['means']
列復制到數據幀df_sum
。
如何實現呢?
下面的Photoshoped圖像說明了我要創建的數據框。 'sum'和'means'列都合並到一個DataFrame中:
有幾種方法可以做到這一點。 在數據框外使用merge
功能是最有效的。
df_both = df_sum.merge(df_mean, how='left', on='keys')
df_both
Out[1]:
keys sums means
0 1 1 1.0
1 2 5 2.5
2 3 22 5.5
我認為pandas.merge()
是您要尋找的功能。 就像pd.merge(df_sum, df_mean, on = "keys")
。 此外,此結果還可以總結為一個agg
函數,如下所示:
df.groupby('keys')['values'].agg(['sum', 'mean']).reset_index()
# keys sum mean
#0 1 1 1.0
#1 2 5 2.5
#2 3 22 5.5
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.