无法在没有格式问题的情况下合并 2 个数据框?
Cant combining 2 dataframes without formatting issues?
我有 2 个从网上抓取的数据框,我需要将它们组合成一个数据框以导出到 excel。但是我 运行 遇到格式问题,需要看看是否有人可以帮我解决这个问题。
数据框 1=
df1= pd.DataFrame(table_contents)
df1= df1.replace(r'\n','',regex=True)
print(df1)
结果:
0 1 2
0 Order Number Manager Order Date
1 Z57-808456-9 Victor Tully 01/13/2022
Dataframe2=
order_list.append(order_info)
df2 = pd.DataFrame(order_list)
df2.head()
print(df2)
结果:
Order Number Location Zip Code
0 Z57-808456-9 Department 28 48911
我试过使用几种不同的替代方法,但仍然没有得到正确的结果。
combined_dfs= pd.concat([df1,df2],axis=1,join="inner")
print (combined_dfs)
结果:
Order Number Location Zip Code 0 1 2
0 Z57-808456-9 Department 28 48911 Order Number Manager Order Date
我试图将它们全部放在 2 行上,并可能删除显示在两行上的重复订单号。如果不是,我仍然可以完全接受它和一个副本。
预期结果:
Order Number Location Zip Code Manager Order Date
Z57-808456-9 Department 28 48911 Victor Tully 01/13/2022
您可以在 DataFrame.set_axis
, remove first row by iloc[1:]
中按第一行创建列,然后加入 df2
:
df = df1.set_axis(df1.iloc[0], axis=1, inplace=False).iloc[1:]
combined_dfs = df2.merge(df, on='Order Number')
print (combined_dfs)
Order Number Location Zip Code Manager Order Date
0 Z57-808456-9 Department 28 48911 Victor Tully 01/13/2022
在您的第一个数据框中,列名似乎是第一行。您可以删除第一行并重命名列,然后合并两个数据框。
# remove first row of data
df1 = df1.iloc[1:].reset_index()
# set column names
df1.columns = ['Order Number', 'Location', 'Zip Code']
# merge dataframes on order number
combined_df = pd.merge(df1, df2, on='Order Number', how='inner')
pd.merge(df1, df2, on='Order Number')
我有 2 个从网上抓取的数据框,我需要将它们组合成一个数据框以导出到 excel。但是我 运行 遇到格式问题,需要看看是否有人可以帮我解决这个问题。
数据框 1=
df1= pd.DataFrame(table_contents)
df1= df1.replace(r'\n','',regex=True)
print(df1)
结果:
0 1 2
0 Order Number Manager Order Date
1 Z57-808456-9 Victor Tully 01/13/2022
Dataframe2=
order_list.append(order_info)
df2 = pd.DataFrame(order_list)
df2.head()
print(df2)
结果:
Order Number Location Zip Code
0 Z57-808456-9 Department 28 48911
我试过使用几种不同的替代方法,但仍然没有得到正确的结果。
combined_dfs= pd.concat([df1,df2],axis=1,join="inner")
print (combined_dfs)
结果:
Order Number Location Zip Code 0 1 2
0 Z57-808456-9 Department 28 48911 Order Number Manager Order Date
我试图将它们全部放在 2 行上,并可能删除显示在两行上的重复订单号。如果不是,我仍然可以完全接受它和一个副本。
预期结果:
Order Number Location Zip Code Manager Order Date
Z57-808456-9 Department 28 48911 Victor Tully 01/13/2022
您可以在 DataFrame.set_axis
, remove first row by iloc[1:]
中按第一行创建列,然后加入 df2
:
df = df1.set_axis(df1.iloc[0], axis=1, inplace=False).iloc[1:]
combined_dfs = df2.merge(df, on='Order Number')
print (combined_dfs)
Order Number Location Zip Code Manager Order Date
0 Z57-808456-9 Department 28 48911 Victor Tully 01/13/2022
在您的第一个数据框中,列名似乎是第一行。您可以删除第一行并重命名列,然后合并两个数据框。
# remove first row of data
df1 = df1.iloc[1:].reset_index()
# set column names
df1.columns = ['Order Number', 'Location', 'Zip Code']
# merge dataframes on order number
combined_df = pd.merge(df1, df2, on='Order Number', how='inner')
pd.merge(df1, df2, on='Order Number')