我有两个要使用以下代码合并到一个数据框中的csv文件:
import pandas as pd
df_1 = pd.read_csv('A.csv')
df_2 = pd.read_csv('B.csv')
df_3 = df_1.merge(df_2, on='Material_Number_ID', how='left')
我试图用来在(Material_Number_ID)上合并它们的字段是一个12位数字,当我将其保存为csv时会转换为文本字段。这使我无法将该字段用作链接,因为它无法识别数字不同。
Dataframe A:
Material_Number_ID Material_Type
0 4.920000e+11 FINISHED GOODS
1 4.920000e+11 FINISHED GOODS
Dataframe B:
Material_Number_ID Merch_Org
0 4.920000e+11 ACCESSORIES
Output:
Material_Number_ID Material_Type Merch_Org
0 4.920000e+11 FINISHED GOODS ACCESSORIES
1 4.920000e+11 FINISHED GOODS ACCESSORIES
问题是第1行找不到匹配项,因为在原始编号的第12位数字,Material_Number_IDs不同。
预期输出为
Material_Number_ID Material_Type Merch_Org
0 4.920000e+11 FINISHED GOODS ACCESSORIES
1 4.920000e+11 FINISHED GOODS NaN
我知道答案是通过某种方式更改材料编号id,但我不知道正确的方法。
谢谢!
答案 0 :(得分:0)
从此thread,当您从csv导入时,pandas将数字读取为浮点数。如果使用以下代码将它们转换为int64,它将显示Material_Number_ID
的所有数字。
df_1['Material_Number_ID'] = df_1['Material_Number_ID'].astype('int64')
df_2['Material_Number_ID'] = df_2['Material_Number_ID'].astype('int64')