合并并复制所有行

2024-09-27 19:15:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试合并两个数据帧以查找任何新条目。目前这两个数据帧是相同的。你知道吗

数据帧A

    BusinessName                        Ubi             IdentifierValue
0   CHULA VISTA PAINTING/SERVICES       604000010       CHULAVP841MQ
1   MANU TECH LLC                       604000040       MANUTTL833BL
2   HAWTHORN LANDSCAPE MTRILS INC       604000042       HAWTHLM845MM
3   M M R CONSTRUCTION LLC              604000082       MMRCOCL848MM
4   HURTADO PAINTING                    604000120       HURTAP*831JJ

数据帧B

        BusinessName                    Ubi             IdentifierValue
0   CHULA VISTA PAINTING/SERVICES       604000010       CHULAVP841MQ
1   MANU TECH LLC                       604000040       MANUTTL833BL
2   HAWTHORN LANDSCAPE MTRILS INC       604000042       HAWTHLM845MM
3   M M R CONSTRUCTION LLC              604000082       MMRCOCL848MM
4   HURTADO PAINTING                    604000120       HURTAP*831JJ

当我在Ubi上合并时,它会复制所有的行。你知道吗

A = A[['Ubi']]
B = B[['Ubi']]
A = A.merge(B, how='outer', indicator=True)
A


    Ubi         _merge
0   604000010.0 left_only
1   604000040.0 left_only
2   604000042.0 left_only
3   604000082.0 left_only
4   604000120.0 left_only
5   604000010.0 right_only
6   604000040.0 right_only
7   604000042.0 right_only
8   604000082.0 right_only
9   604000120.0 right_only

如果我只与企业名称合并,尽管它按预期工作。你知道吗

A = A[['BusinessName']]
B = B[['BusinessName']]
A = A.merge(B, how='outer', indicator=True)
A

BusinessName                        _merge
0   CHULA VISTA PAINTING/SERVICES   both
1   MANU TECH LLC                   both
2   HAWTHORN LANDSCAPE MTRILS INC   both
3   M M R CONSTRUCTION LLC          both
4   HURTADO PAINTING                both

最好在Ubi上合并,但我似乎找不到问题所在。Ubi列是Int64,而其他列是对象。我注意到当我在Ubi列上合并时,列类型切换为float64。你知道吗


Tags: 数据rightonlymergelefttechvistaboth
1条回答
网友
1楼 · 发布于 2024-09-27 19:15:12

有不同类型的问题,需要相同的。你知道吗

检查一下:

print (A['Ubi'].dtype)
print (B['Ubi'].dtype)

所以需要:

A['Ubi'] = A['Ubi'].astype(str)
B['Ubi'] = B['Ubi'].astype(str)

或:

A['Ubi'] = A['Ubi'].astype(int)
B['Ubi'] = B['Ubi'].astype(int)

相关问题 更多 >

    热门问题