首页 > 解决方案 > 如何合并具有不同索引的两个不同变量?

问题描述

我正在处理一个大型数据集,我不得不清理一些行,所以现在没有遵循索引,因为有些缺失了。我现在有:

        A
2       2
5       4
7       5
8       6
17      6
21      8

无论 A 列是什么意思,我都必须处理它,拆分它并转换它。所以,最后,我有两个由该操作产生的变量(A_case1,A_case2),其中:

print(A_case1)

2    4
7    2
17   3
21   2

print(A_case2)

5   2
8   1

但现在我想合并这两个变量并加入原始数据框。所以我希望最终结果是:

        A   A_case1_Case2
2       2   4
5       4   2
7       5   2
8       6   1
17      6   3
21      8   2

我已经尝试过 pd.concat 但无法加入数据框。任何人都可以帮助我吗?

标签: pythonpandasindexingmergeconcatenation

解决方案


首先将新数据帧合并A_case1A_case2原始数据帧中(df):

merged = df.merge(A_case1, left_index=True, right_index=True, how='left').merge(A_case2, left_index=True, right_index=True, how='left')

A_case1_case2然后通过加入两个中间列A_case1和来创建新列A_case2

merged['A_case1_case2'] = merged[['A_case1', 'A_case2']].apply(lambda x: ''.join(x.dropna().astype(int).astype(str)), 1)

最后删除中间列A_case1A_case2

merged = merged.drop(['A_case1', 'A_case2'], 1)

推荐阅读