Python 添加两列时的NaN值

Python 添加两列时的NaN值,python,pandas,Python,Pandas,我有两个具有不同索引的数据帧,我想对这两个数据帧中的同一列求和。 我尝试了以下方法,但给出了NaN值 结果['normal']=df['normal']+tmp['normal'] 我想要的其实是: result date Anomaly 0 2018-12-06 0 1 2019-01-07 1 2 2019-02-06 1 3 2019-03-06 0 4 2019-04-06 0

我有两个具有不同索引的数据帧,我想对这两个数据帧中的同一列求和。 我尝试了以下方法,但给出了NaN值

结果['normal']=df['normal']+tmp['normal'] 我想要的其实是:

result
    date           Anomaly
0 2018-12-06         0
1 2019-01-07         1
2 2019-02-06         1
3 2019-03-06         0
4 2019-04-06         0

这里需要按日期时间对齐,因此首先使用DatetimeIndex,然后使用:


这里需要按日期时间对齐,因此首先使用DatetimeIndex,然后使用:

:

:


必须首先在数据帧上设置正确的索引,然后使用日期索引添加:


必须首先在数据帧上设置正确的索引,然后使用日期索引添加:

你可以试试这个

pd.concat([df, tmp]).groupby('date', as_index=False)["Anomaly"].sum()

         date  Anomaly
0  2018-12-06        0
1  2019-01-07        1
2  2019-02-06        1
3  2019-03-06        0
4  2019-04-06        0
你可以试试这个

pd.concat([df, tmp]).groupby('date', as_index=False)["Anomaly"].sum()

         date  Anomaly
0  2018-12-06        0
1  2019-01-07        1
2  2019-02-06        1
3  2019-03-06        0
4  2019-04-06        0

正确,但这只会删除其他列!在我的问题中,我试图将其最小化,因此省略了其他列。我如何保存它们?@Mohame Belahcen所有列都是数字?然后使用result=df.addtmp,在设置索引后填充\u value=0.reset\u索引。@Mohamed Belahcen,所以我建议创建一个包含多列和预期输出的新问题。请同时添加数字和字符串列。正确,但这只会删除其他列!在我的问题中,我试图将其最小化,因此省略了其他列。我如何保存它们?@Mohame Belahcen所有列都是数字?然后使用result=df.addtmp,在设置索引后填充\u value=0.reset\u索引。@Mohamed Belahcen,所以我建议创建一个包含多列和预期输出的新问题。请添加数字和字符串列。我非常喜欢这个答案。它简单、高效并且保留了整数数据类型。回答得不错。然而,我想保留我的df中没有提出问题的其他列,以使其最小化。我非常喜欢这个答案。它简单、高效并且保留了整数数据类型。回答得不错。然而,我想保留df中没有提出问题的其他列,以使其最小化
res = pd.DataFrame({'date':df.date,'Anomaly':tmp.Anomaly.combine_first(df.Anomaly)})
print(res)
         date  Anomaly
0  2018-12-06      0.0
1  2019-01-07      1.0
2  2019-02-06      1.0
3  2019-03-06      0.0
4  2019-04-06      0.0
tmp1 = tmp.set_index('date')
result = df.set_index('date')
result.loc[tmp1.index] += tmp1
result.reset_index(inplace=True)
pd.concat([df, tmp]).groupby('date', as_index=False)["Anomaly"].sum()

         date  Anomaly
0  2018-12-06        0
1  2019-01-07        1
2  2019-02-06        1
3  2019-03-06        0
4  2019-04-06        0