NinjaGaiden
NinjaGaiden

Reputation: 3146

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

Upvotes: 11

Views: 16191

Answers (2)

jezrael
jezrael

Reputation: 862441

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())

Upvotes: 15

MaxU - stand with Ukraine
MaxU - stand with Ukraine

Reputation: 210822

Alternatively you can try this (with your original data frame):

print(df)
print(df.groupby(df.index).sum())

Output:

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

Upvotes: 5

Related Questions