首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不创建重复列的情况下将多个数据文件合并为一个

在不创建重复列的情况下将多个数据文件合并为一个
EN

Stack Overflow用户
提问于 2021-02-17 21:26:36
回答 2查看 38关注 0票数 0

我有三个数据:

代码语言:javascript
复制
array = {'name': ['Trevor', 'John', 'Trevor', 'John', 'Trevor', 'Trevor', 'John'], 'day': ['2020-10-11 08:00:00', '2020-10-11 08:00:00', '2020-10-11 08:00:00', '2020-10-11 08:00:00', '2020-10-11 08:00:00'
        , '2020-10-11 12:34:00', '2020-10-11 09:12:00'], 'number': [5,0,3,5,1,8,6]}
df = pd.DataFrame(array)
array1 = {'name': ['Trevor'], 'color': ['red']}
df1 = pd.DataFrame(array1)
array2 = {'name': ['John'], 'color': ['blue']}
df2 = pd.DataFrame(array2)
df

我想将df1 & df2合并到现实世界中的df中--我有数百个df1、df2、df3.),因此输出如下:

代码语言:javascript
复制
    name    day              number color
0   Trevor  2020-10-11 08:00:00 5   red
1   John    2020-10-11 08:00:00 0   blue
2   Trevor  2020-10-11 08:00:00 3   red
3   John    2020-10-11 08:00:00 5   blue
4   Trevor  2020-10-11 08:00:00 1   red
5   Trevor  2020-10-11 12:34:00 8   red
6   John    2020-10-11 09:12:00 6   blue
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-17 21:33:54

看起来像mergeconcat

代码语言:javascript
复制
df.merge(pd.concat([df1,df2]), on='name', how='left')

输出:

代码语言:javascript
复制
     name                  day  number color
0  Trevor  2020-10-11 08:00:00       5   red
1    John  2020-10-11 08:00:00       0  blue
2  Trevor  2020-10-11 08:00:00       3   red
3    John  2020-10-11 08:00:00       5  blue
4  Trevor  2020-10-11 08:00:00       1   red
5  Trevor  2020-10-11 12:34:00       8   red
6    John  2020-10-11 09:12:00       6  blue

更新:每次获得新的df#时都尝试loc更新

代码语言:javascript
复制
df.loc[df['name'].isin(df1['name']), 'color'] = df1['color'].iloc[0]

df.loc[df['name'].isin(df2['name']), 'color'] = df2['color'].iloc[0]
票数 1
EN

Stack Overflow用户

发布于 2021-02-17 21:34:25

代码语言:javascript
复制
pd.merge(df,df1.append(df2), how='left', on='name')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66250189

复制
相关文章

相似问题

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