将Pandas中重复的索引合并为单个索引

11

我有一个简单的数据框,就像这样:

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

我想要

             a   b
1998-01-01  10   3

自1998年1月1日起共享指数

2个回答

14

或者您可以使用 groupby 方法,通过参数 level=0 以不同的方式按 index 分组,并使用 sum 方法进行求和:

print df.groupby(level=0).sum()

             a  b
1998-01-01  10  3

或者更好的是:

print df.sum(level=0)

您正在创建两个不同的数据框。而我只有一个。我提供了代码来展示如何创建我的数据。还有其他方法吗? - NinjaGaiden
抱歉,我不理解你的问题。另一个答案可能是最佳解决方案。 - jezrael
@jezrael,您能否解释一下level=0是什么意思?我已经查看了文档,但仍然不清楚。 - pfabri
1
@pfabri 检查MultiIndex,它意味着第一或第二级别,如果没有MultiIndex,则Index的工作方式与MultiIndex的第一级别相同。 - jezrael

5

另外一种方法是使用您的原始数据框:

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

输出:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接