首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python在保持行数的同时合并(只添加列)

Python在保持行数的同时合并(只添加列)
EN

Stack Overflow用户
提问于 2020-04-09 07:32:40
回答 1查看 61关注 0票数 1

如何在保持行数的同时合并2个DF?

日期是唯一的主键,事实上,这两个数据文件是从同一个父数据文件中过滤出来的。

代码语言:javascript
复制
df_afs = df[df['Filesystem'].str.contains(".snapshot") == False]
df_sfs = df[df['Filesystem'].str.contains(".snapshot") == True]
代码语言:javascript
复制
df_all = pd.merge(df_afs, 
          df_sfs[['date', 'sfs_volume','sfs_kbytes','sfs_used','sfs_avail']],
          on = 'date', 
          how = 'outer')

df_afs

代码语言:javascript
复制
date    hostname    afs_volume  afs_kbytes  afs_used    afs_avail
3   09/02/2020 00:19:16     nascn01     /vol/vol0/  347277596   115158404   232119192
5   09/02/2020 00:19:16     nascn01     /vol/vol1/  996148  492     995656
7   09/02/2020 00:19:16     nascn01     /vol/vol2/  996148  656     995492
9   09/02/2020 00:19:16     nascn01     /vol/vol3/  996148  652     995496
11  09/02/2020 00:19:16     nascn01     /vol/vol4/  996148  564     995584

df_sfs

代码语言:javascript
复制
date    hostname    sfs_volume  sfs_kbytes  sfs_used    sfs_avail
4   09/02/2020 00:19:16     nascn01     /vol/vol0/.snapshot     18277768    3975892     14301876
6   09/02/2020 00:19:16     nascn01     /vol/vol1/.snapshot     52428   3520    48908
8   09/02/2020 00:19:16     nascn01     /vol/vol2/.snapshot     52428   3208    49220
10  09/02/2020 00:19:16     nascn01     /vol/vol3/.snapshot     52428   3568    48860
12  09/02/2020 00:19:16     nascn01     /vol/vol4/.snapshot     52428   3432    48996

误差截图 误差截图

形状

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-09 07:55:43

你需要:

指定左边的dataframe列和右边的dataframe列。

代码语言:javascript
复制
left_on = 'date', right_on = 'date'..

您可以在线访问许多文章,查看哪种合并类型最适合您的情况,但是日期行不是唯一的这一事实可能会为维护相同数量的列提供困难,因为不清楚它们应该如何合并。有关更多信息,请参见:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.merge.html

也许您可以尝试在第一个dataframe中为这个目的创建一个新列,方法是连接,这样就可以将dataframes连接到

代码语言:javascript
复制
df_afs['afs_volume_rec'] = df_afs['afs_volume_rec'] + '.snapshot'

后面跟着此列的合并,而不是日期。

代码语言:javascript
复制
left_on = 'afs_volume_rec', right_on = 'sfs_volume'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61116070

复制
相关文章

相似问题

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