合并2个具有相似列但时间表示形式不同的数据帧

时间:2018-07-17 02:10:38

标签: python pandas dataframe merge

我正在尝试合并两个数据帧。数据帧df1将时间表示为日期(mm / dd / yyy),数据帧df2则按月表示时间(仅1、2或3)。还有多个其他共享列,例如“ Sku”,“客户名称”和“邮政编码”。

我尝试了两者之间的pd.merge,但是由于'Sku'具有重复的值,我最终得到了非常大的合并数据帧。并且在多列上合并将产生一个合并数据帧,其值应为应为x3的值。任何想法都会有所帮助。

df1

Date      Sku       Customer_Name   Zip_Code  Sales
1/2/2017  ANG00014  CUSTOMER 1      45679     2016
1/2/2017  ANG00014  CUSTOMER 8      54730     1512
1/4/2017  ANG00015  CUSTOMER 5      54730     504
.
.
.

df2

Month     Sku       Customer_Name   Zip_Code  Total Cost
2         ANG00011  CUSTOMER 1      45679     152584
3         ANG00011  CUSTOMER 4      45679     1222049
1         ANG00014  CUSTOMER 2      45679     41620
.
.
.

#Create month column in pd1
df1['Date'] = pd.to_datetime(df1['Date'], errors='coerce')
df1['Month'] = df1['Date'].dt.month

merge = pd.merge(pd1, pd2, on=['Month', 'Sku', 'Customer Name', 
'Zip Code'])

df1行总计3,379; df2中的行总数为193;合并中的行总计3695

0 个答案:

没有答案