python - 数据框将两个表与现有数据连接起来
问题描述
想要基于加入相同dataframe(e)
的只有记录,最终结果的记录只有三列 dataframe(f)
column"B"
column"B"
2,3,5,6,13,14
*
column"C"
column"A"
column"B"
column"C"
Python代码
e = [[1.0, 2.0], [2.0, 3.0], [3.0, 4.0], [4.0, 5.0], [5.0, 6.0], [6.0, 7.0], [7.0, 8.0], [8.0, 9.0], [9.0, 10.0], [10.0, 11.0], [11.0, 12.0], [12.0, 13.0], [13.0, 14.0]]
f = [['2', '*'], ['3', '*'], ['5', '*'], ['6', '*'], ['13', '*'], ['14', '*']]
e = pd.DataFrame(e)
e.columns = ['A', 'B']
f = pd.DataFrame(f)
f.columns = ['B', 'C']
pd.concat([e,f], axis = 1, join="outer")
执行结果
A B B C
0 1.0 2.0 2 *
1 2.0 3.0 3 *
2 3.0 4.0 5 *
3 4.0 5.0 6 *
4 5.0 6.0 13 *
5 6.0 7.0 14 *
6 7.0 8.0 NaN NaN
7 8.0 9.0 NaN NaN
8 9.0 10.0 NaN NaN
9 10.0 11.0 NaN NaN
10 11.0 12.0 NaN NaN
11 12.0 13.0 NaN NaN
12 13.0 14.0 NaN NaN
预期结果
A B C
0 1.0 2.0 NaN
1 2.0 3.0 NaN
2 3.0 4.0 *
3 4.0 5.0 *
4 5.0 6.0 NaN
5 6.0 7.0 *
6 7.0 8.0 *
7 8.0 9.0 NaN
8 9.0 10.0 NaN
9 10.0 11.0 NaN
10 11.0 12.0 NaN
11 12.0 13.0 *
12 13.0 14.0 *
解决方案
用于pd.merge()
合并 column 上的数据框B
。首先,我们必须将 dtype 设置f['B']
为float
允许合并该列并给出您想要的结果:
f['B'] = f['B'].astype(float)
然后我们可以合并B
:
e.merge(f, how='outer', on='B')
输出:
一个 | 乙 | C | |
---|---|---|---|
0 | 1.0 | 2.0 | * |
1 | 2.0 | 3.0 | * |
2 | 3.0 | 4.0 | 楠 |
3 | 4.0 | 5.0 | * |
4 | 5.0 | 6.0 | * |
5 | 6.0 | 7.0 | 楠 |
6 | 7.0 | 8.0 | 楠 |
7 | 8.0 | 9.0 | 楠 |
8 | 9.0 | 10.0 | 楠 |
9 | 10.0 | 11.0 | 楠 |
10 | 11.0 | 12.0 | 楠 |
11 | 12.0 | 13.0 | * |
12 | 13.0 | 14.0 | * |
推荐阅读
- python - 有条件的数据框行复制
- algorithm - Algorithm for converting fraction to binary
- reactjs - 构建应用程序后出错 - 位置 0 处的 JSON 中的意外令牌 <
- macos - mariaDB 客户端 - 加载错误版本的 openssl
- html - 嵌套的 div 标签彼此之间没有完全对齐
- reactjs - 带有布尔道具的 ReactJS 三元运算符
- ibm-doors - 有没有办法删除 DXL 布局列中的文本?
- python - 如何检查手头的值是否在某些 PySpark 数据帧的特定列中?
- flutter - Flutter:动态平台图标
- c# - 无法忽略更新数据库中的类类型