pythonpandas

Pandas Merge duplicate index into single index


I have a simple data frame like this:

d1={'a':{'1998-01-01':10}}
d2={'b':{'1998-01-01':3}}

df=pd.DataFrame.from_dict(d1)
df=df.append(pd.DataFrame.from_dict(d2))
df.index=pd.to_datetime(df.index)

             a   b
1998-01-01  10 NaN
1998-01-01 NaN   3

I would like to have

             a   b
1998-01-01  10   3

Since 1998-01-01 share the index


Solution

  • Or you can use groupby by index different way - with parameter level=0 with sum:

    print (df.groupby(level=0).sum())
    
                 a  b
    1998-01-01  10  3
    

    If need avoid that an all nan group (by index) gets transformed to zero add min_count=1, thanks @LukasS:

    print (df.groupby(level=0, min_count=1).sum())