添加多个DataFrames并删除不匹配的指数

时间:2014-12-12 15:24:38

标签: python pandas

pandas DataFrame.add方法有以下注释:"不匹配的索引将联合在一起"但我正在寻找降低不匹配指数的最有效方法。

我有多个DataFrame,每个都有一个DateTime索引,但我只想在日期中添加值,这些日期在我所有的DataFrame中的列的 ANY 中有观察结果。加在一起。什么是最有效的方法(即丢弃不匹配的指数而不是联合它们)?

iso_country_code  AFG AGO ALB       ARE
period_end
2013-03-31        NaN NaN NaN  7.512557
2013-06-30        NaN NaN NaN  7.455903
2013-09-30        NaN NaN NaN  7.232294
2013-12-31        NaN NaN NaN  7.044918
2014-03-31        NaN NaN NaN  7.049269
2014-06-30        NaN NaN NaN  8.621573
2014-09-30        NaN NaN NaN       NaN
2014-12-31        NaN NaN NaN       NaN

iso_country_code       AFG       AGO        ALB        ARE
period_end
2013-03-31        0.083310  4.164154  20.002821  17.463841
2013-06-30        0.092613  5.129979  20.389471  17.774866
2013-09-30        0.048484  5.116080  20.641199  17.535600
2013-12-31        0.067519  3.632584  21.494163  18.122075
2014-03-31        0.242996  3.686424  18.178002  19.399709
2014-06-30             NaN       NaN        NaN        NaN
2014-09-30             NaN       NaN        NaN        NaN
2014-12-31             NaN       NaN        NaN        NaN

*程序完成*

1 个答案:

答案 0 :(得分:0)

应该像以下一样简单:

(df1 + df2).dropna(axis=0, how='all').dropna(axis=1, how='all')

如果不起作用,请尝试:

df1.add(df2).dropna(axis=0, how='all').dropna(axis=1, how='all')

我现在无法测试,但是其中一个(或至少)其中一个会留给你:

iso_country_code  ARE
period_end
2013-03-31        25.xxx
2013-06-30        xx.xxx
2013-09-30        xx.xxx
2013-12-31        xx.xxx
2014-03-31        xx.xxx
2014-06-30        xx.xxx