python - 由不同数据帧的唯一值组成的新数据帧
问题描述
我有两个数据框:
df1 =
a b
1 555
2 555
4 555
4 555
5 555
6 555
7 555
8 555
15 555
1 555
和
df2 =
a b
2 666
2 666
3 666
4 666
5 666
2 666
3 666
9 666
我想a
在两个数据框之间找到相同的列值并将它们放入新的数据框(也包含其他列的值。这里是b
)所需的输出是:
df3 =
a b
2 555
2 666
2 666
4 555
4 555
4 666
…
等等。
我试过了:
df3= pd.merge(df1, df2, on=['a'], how='inner')
但它给了我一些不同的东西
解决方案
采用:
df3= pd.concat([df1, df2], ignore_index=True)
df3 = df3[df3['a'].isin(np.intersect1d(df1['a'], df2['a']))]
或者:
idx = np.intersect1d(df1['a'], df2['a'])
df3 = pd.concat([df1[df1.a.isin(idx)], df2[df2.a.isin(idx)]], ignore_index=True)
print (df3)
a b
1 2 555
2 4 555
3 4 555
4 5 555
0 2 666
1 2 666
3 4 666
4 5 666
5 2 666
推荐阅读
- python - 在无服务器中压缩 AWS 的依赖项时如何排除包?
- android - Android WebView - 以编程方式强制第三方网页的输入字段上的数字键盘?
- c - 解密不会产生与加密前相同的输出
- javascript - 使用 Express '未找到授权令牌'的 Auth0 角色
- vb.net - OpenTK 图形
- json - 直接从 AWS S3 读取文件,无需在 Golang 中下载 json 文件
- javascript - React 组件在服务器端渲染时返回空对象
- ios - iOS Asset/Storyboards 不会更新,除非“Clean Build”Swift 包管理器、Xcode、Storyboards、iOS
- c# - 使用 Object object = new(); 创建 C# 对象 与 var object = new Object();
- automation - 将数据从一个地方粘贴到同一网页上的文本框的问题