在Pandas Dataframe pd.concat之后,我得到了NaNs

时间:2014-03-20 11:12:50

标签: python pandas dataframe concat

我有三只熊猫,其中一只是'行'移位,第一个元素是空的。 当我连接三个df以获得单个3列数据帧时,我在三列中的两列中得到所有NaN:

DF1:

                    S
2010-12-31         True
2011-01-01        False
2011-01-02        False

DF2:

               P
2010-12-31           
2011-01-01    On
2011-01-02    On

DF3:

              C
2010-12-31    On
2011-01-01    On
2011-01-02    On

res = pd.concat([df1,df2,df3]):

                    P         C           S
2010-12-31        NaN        NaN         True
2011-01-01        NaN        NaN        False
2011-01-02        NaN        NaN        False

顺序似乎也被颠倒了......

非常感谢

1 个答案:

答案 0 :(得分:8)

In [2]: index = pd.DatetimeIndex(['2010-12-31', '2011-01-01', '2011-01-02'])

In [3]: df1 = pd.DataFrame({'S':[True,False,False]}, index=index)

In [4]: df2 = pd.DataFrame({'P':['','On','On']}, index=index)

In [5]: df3 = pd.DataFrame({'C':['On','On','On']}, index=index)

如果您的数据框架定义如上,那么带有pd.concat的{​​{1}}应该有效:

axis=1