我有一个df_a带有id信息的数据框:
unique_id lacet_number
15 5570613 TLA-0138365
24 5025490 EMP-0138757
36 4354431 DXN-0025343
Run Code Online (Sandbox Code Playgroud)
和另一个数据帧df_b,我知道的行数对应于以下行df_a:
latitude longitude
0 -93.193560 31.217029
1 -93.948082 35.360874
2 -103.131508 37.787609
Run Code Online (Sandbox Code Playgroud)
我想要做的只是简单地解决这两个问题并得到:
unique_id lacet_number latitude longitude
0 5570613 TLA-0138365 -93.193560 31.217029
1 5025490 EMP-0138757 -93.948082 35.360874
2 4354431 DXN-0025343 -103.131508 37.787609
Run Code Online (Sandbox Code Playgroud)
我尝试过的:
df_c = pd.concat([df_a, df_b], axis=1)
Run Code Online (Sandbox Code Playgroud)
这给了我一个外连接.
unique_id lacet_number latitude longitude
0 NaN NaN -93.193560 31.217029
1 NaN NaN -93.948082 35.360874
2 NaN NaN -103.131508 37.787609
15 5570613 TLA-0138365 NaN NaN
24 5025490 EMP-0138757 NaN NaN
36 4354431 DXN-0025343 NaN NaN
Run Code Online (Sandbox Code Playgroud)
问题是两个数据帧的索引不匹配.我阅读了pandas.concat的文档,看到有一个选项"ignore_index".但这仅适用于连接轴,在我的情况下,列和它当然不适合我.所以我的问题是:有没有一种简单的方法来实现这一目标?
EdC*_*ica 68
如果你确定索引行值是相同的那么为了避免索引对齐顺序然后只是调用reset_index(),这将重置你的索引值从0以下开始:
df_c = pd.concat([df_a.reset_index(drop=True), df_b], axis=1)
Run Code Online (Sandbox Code Playgroud)
DataFrame.join虽然concat很好,但更简单join:
C = A.join(B)
Run Code Online (Sandbox Code Playgroud)
这仍然假设索引对齐,因此reset_index根据需要。在OP的例子中,B的索引已经是默认的,所以我们只需要重置A:
C = A.reset_index(drop=True).join(B)
# unique_id lacet_number latitude longitude
# 0 5570613 TLA-0138365 -93.193560 31.217029
# 1 5025490 EMP-0138757 -93.948082 35.360874
# 2 4354431 DXN-0025343 -103.131508 37.787609
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
54780 次 |
| 最近记录: |