I am trying to concatenate two dataframes. I've tried using merge(), join(), concat() in pandas, but none gave me my desired output.
df1:
Index | value |
---|---|
0 | a |
1 | b |
2 | c |
3 | d |
4 | e |
df2:
Index | value |
---|---|
1 | f |
2 | g |
3 | h |
4 | i |
5 | j |
desired output:
Index | col1 | col2 |
---|---|---|
0 | a | f |
1 | b | g |
2 | c | h |
3 | d | i |
4 | e | j |
Thanks in advance!
CodePudding user response:
You can just use pd.merge
and specify the index left join as follows:
import pandas as pd
df1 = pd.DataFrame(data={'value': list('ABCDE')})
df2 = pd.DataFrame(data={'value': list('FGHIJ')}, index=range(1, 6))
pd.merge(df1.rename(columns={'value': 'col1'}), df2.reset_index(drop=True).rename(columns={'value': 'col2'}), how='left', left_index=True, right_index=True)
-----------------------------------
col1 col2
0 A F
1 B G
2 C H
3 D I
4 E J
-----------------------------------
CodePudding user response:
Does resetting the index of df2 work for your use case?
pd.concat([df1,df2.reset_index(drop=True)], axis=1) \
.set_axis(['Col1', 'Col2'], axis=1, inplace=False)
Result
Col1 Col2
0 a f
1 b g
2 c h
3 d i
4 e j