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

prr*_*e72 5 python concat dataframe pandas

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

DF1:

                    S
2010-12-31         True
2011-01-01        False
2011-01-02        False
Run Code Online (Sandbox Code Playgroud)

DF2:

               P
2010-12-31           
2011-01-01    On
2011-01-02    On
Run Code Online (Sandbox Code Playgroud)

DF3:

              C
2010-12-31    On
2011-01-01    On
2011-01-02    On
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

订单似乎也被颠倒了......

非常感谢

unu*_*tbu 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)
Run Code Online (Sandbox Code Playgroud)

如果您DataFrames如上所定义,然后pd.concataxis=1应该工作:

In [7]: pd.concat([df1,df2,df3], axis=1)
Out[7]: 
                S   P   C
2010-12-31   True      On
2011-01-01  False  On  On
2011-01-02  False  On  On

[3 rows x 3 columns]
Run Code Online (Sandbox Code Playgroud)