我正在使用pandas中的merge来连接两个数据框,但是结果包含来自单个数据框的列。这是一段代码:
df1
date(index) | Total | Unique
df2
date(index) | Total | Unique
result = pd.merge(df1, df2, how="inner")
Output:
Total | Unqiue
Expected Output:
df1_Total | df2_Unique | df2_total | df2_unique
我也尝试过后缀,但是后缀也不起作用。
答案 0 :(得分:2)
result = pd.merge(df1, df2, how="inner", on='date(index)')
这将在date(index)
上加入。根据需要将联接密钥更改为所需的
答案 1 :(得分:1)
DataFrame.add_prefix
和left_on
和right_on
参数是可能的,但是由于默认的内部联接,两列中的值都相同,
df1 = pd.DataFrame([(10,2),(20,4),(30,6)],
columns=['Total','Unique'],
index=pd.date_range('2015-01-01', periods=3))
df2 = pd.DataFrame([(10,2),(30,6),(20,600)],
columns=['Total','Unique'],
index=pd.date_range('2015-01-02', periods=3))
#print (df1)
#print (df2)
result = pd.merge(df1.add_prefix('df1_'),
df2.add_prefix('df2_'),
left_on=['df1_Total','df1_Unique'],
right_on=['df2_Total','df2_Unique'])
print (result)
df1_Total df1_Unique df2_Total df2_Unique
0 10 2 10 2
1 30 6 30 6
如果需要通过索引值联接,请使用left_index
和right_index
和suffixes
:
result = pd.merge(df1,
df2,
left_index=True,
right_index=True,
suffixes=('_df1','_df2'))
print (result)
Total_df1 Unique_df1 Total_df2 Unique_df2
2015-01-02 20 4 10 2
2015-01-03 30 6 30 6
答案 2 :(得分:0)
在“日期”列中指定合并功能参数
pd.merge(df1, df2, how="inner", on="Date")