0

I have read thru docs and example, but can't find what I need to solve the following problem. I need to be able join/merge/concat two dataframes

import pandas as pd
data = {'Name':['Tom', 'nick', 'krish', 'jack'], 'Age':[20, 21, 19, 18]} 
# Create DataFrame 
df = pd.DataFrame(data) 
df.set_index(['Name'], inplace=True)
df.head(10)

       Age
Name    
Tom     20
nick    21
krish   19
jack    18

other_data = {'Name':['Tom', 'Tom', 'Tom', 'nick', 'nick','nick'],'Event':['event1', 'event2', 'event3','event1', 'event2', 'event3']} 
df_other = pd.DataFrame(other_data)

df_other.set_index(['Name'], inplace=True)
df_other.head(10)

         Event
Name    
Tom     'event1'
Tom     'event2'
Tom     'event3'
nick    'event1'
nick    'event2'
nick    'event3'

**Desired output:**
       Age  Event
Name
Tom     20  'event1'
Tom     20  'event2'
Tom     20  'event3'
nick    21  'event1'
nick    21  'event2'
nick    21  'event3'
krish   19   Nan
jack    18   Nan

I've tried many variants and either getting wrong merge/concat/join or errors

dejanualex
  • 3,872
  • 6
  • 22
  • 37
dizzy
  • 49
  • 1
  • 6
  • 1
    `df.join(df_other, how='left')` – yatu Apr 01 '20 at 20:15
  • @yatu That works, but joining to "df" above again with another dataframe causes an error ``` more_data = {'Name':['jack', 'jack', 'jack', 'krish', 'krish','krish'],'Event':['event1', 'event2', 'event3','event1', 'event2', 'event3']} df_other_more = pd.DataFrame(more_data) df_other_more.set_index(['Name'], inplace=True) df_other_more.head(10) df_total = df_total.join(df_other_more, how='left') df_total.head(20) ValueError: columns overlap but no suffix specified: Index(['Event'], dtype='object') ``` Any thoughts? – dizzy Apr 01 '20 at 20:33

0 Answers0