我需要用第二个dataframe列(包含这些名称的一些分布)的内容来注释数据(列中的名称列表)。比如dataframe 1:
id name col
----------------------------
29834 Marie Peer
890384 Marie Peach
30047 Susan Peer与另一个包含
name city
---------------------
Marie Chicago
Marie Boston
Harley Milan
Josh London问题
我是否应该更好地使用熊猫,或者是否值得创建先前使用过的python dictionaries?
如果“Marie”在第二个dataframe中有多个条目,那么我需要在一个新列中注释第二个df输出中的多个条目:
29834玛丽·佩尔芝加哥波士顿890384玛丽·佩奇波士顿30047苏珊·佩尔
(如果第二个数据中没有条目,比如这里的'Susan‘,则字段将保持空白)
事先非常感谢(很抱歉,我是个初学者,尽管这听起来可能是非常基本的问题)!
发布于 2019-10-29 06:17:22
将DataFrame.groupby与join一起用于第二个DataFrame,因此可以使用DataFrame.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: objecthttps://stackoverflow.com/questions/58602232
复制相似问题