首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据注释,数据合并

数据注释,数据合并
EN

Stack Overflow用户
提问于 2019-10-29 06:14:49
回答 1查看 126关注 0票数 2

我需要用第二个dataframe列(包含这些名称的一些分布)的内容来注释数据(列中的名称列表)。比如dataframe 1:

代码语言:javascript
复制
id      name             col
----------------------------
 29834   Marie Peer
890384   Marie Peach
 30047   Susan Peer

与另一个包含

代码语言:javascript
复制
name       city
---------------------
Marie      Chicago
Marie      Boston 
Harley     Milan 
Josh       London

问题

我是否应该更好地使用熊猫,或者是否值得创建先前使用过的python dictionaries?

  • I,但是如果我的第二个dataframe在列中有多个同一行的数据(我需要它们在第一个dataframe的新列的同一行中),它是如何工作的。

如果“Marie”在第二个dataframe中有多个条目,那么我需要在一个新列中注释第二个df输出中的多个条目:

29834玛丽·佩尔芝加哥波士顿890384玛丽·佩奇波士顿30047苏珊·佩尔

(如果第二个数据中没有条目,比如这里的'Susan‘,则字段将保持空白)

  • 一般是用来自其他数据集的数据注释数据集的最佳方法?

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-29 06:17:22

DataFrame.groupbyjoin一起用于第二个DataFrame,因此可以使用DataFrame.join

代码语言:javascript
复制
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

代码语言:javascript
复制
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

细节

代码语言:javascript
复制
print (df2.groupby('name')['city'].apply(', '.join))
name
Harley              Milan
Josh               London
Marie     Chicago, Boston
Name: city, dtype: object
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58602232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档