微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – Pandas – 合并两个数据帧并统一列集

给定两个独立的数据帧,我希望合并它们并统一一组连接的列.

例:

In[1]: df1

Out[1]: 
   a_id     a_time a_val
0     1  100000000     a
1     2  200000000     b
2     3  300000000     c

In[10]: df2

Out[10]: 
   b_id     b_time b_val
0     1  100000000     d
1     2  150000000     e
2     3  350000000     f

我正在寻找的结果数据帧如下

   id       time val
0   1  100000000   a
1   1  100000000   d
2   2  150000000   e
3   2  200000000   b
4   3  300000000   c
5   3  350000000   f

假设两个表都存在所有ID,则结果应为len(df1)len(df2).

我正在使用.stack()查看一些结果但我无法弄清楚如何在合并两个表时使其工作.

请注意,时间可能相同,也可能不同.

解决方法:

我认为你需要在df中使用相同的列,然后使用concat sort_values reset_index

cols = ['id', 'time', 'val']
df1.columns = cols
df2.columns = cols

df = pd.concat([df1, df2]).sort_values('id').reset_index(drop=True)

print (df)
   id       time val
0   1  100000000   a
1   1  100000000   d
2   2  200000000   b
3   2  150000000   e
4   3  300000000   c
5   3  350000000   f

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐