首页 > 解决方案 > 数据标注,数据框合并

问题描述

我需要用第二个数据框的一列的内容(包含这些名称的一些属性)来注释数据(一列中的名称列表)。像数据框 1 一样:

id      name             col
----------------------------
 29834   Marie Peer
890384   Marie Peach
 30047   Susan Peer

与其他数据框包含

name       city
---------------------
Marie      Chicago
Marie      Boston 
Harley     Milan 
Josh       London

问题

提前非常感谢(抱歉,我是初学者,尽管这听起来可能是非常基本的问题)!

标签: pythonpandasdataframedictionary

解决方案


用于第二个 DataFrame,因此可能DataFrame.groupby使用:joinDataFrame.join

df = df1.join(df2.groupby('name')['city'].apply(', '.join), on='name')
print (df)
       id   name    col             city
0   29834  Marie   Peer  Chicago, Boston
1  890384  Marie  Peach  Chicago, Boston
2   30047  Susan   Peer              NaN

或者Series.map

df1['city'] = df1['name'].map(df2.groupby('name')['city'].apply(', '.join))
print (df1)
       id   name    col             city
0   29834  Marie   Peer  Chicago, Boston
1  890384  Marie  Peach  Chicago, Boston
2   30047  Susan   Peer              NaN

详情

print (df2.groupby('name')['city'].apply(', '.join))
name
Harley              Milan
Josh               London
Marie     Chicago, Boston
Name: city, dtype: object

推荐阅读