了解Future与Pandas串联时使用join_axes的警告

时间:2019-10-25 19:52:37

标签: python pandas dataframe

我有两个DataFrame:

df1:

    A   B   C
1   A1  B1  C1
2   A2  B2  C2

df2:

    B   C   D
3   B3  C3  D3
4   B4  C4  D4

B列和C列相同。

我想垂直连接它们,并保留第一个DataFrame的列:

pd.concat([df1, df2], join_axes=[df1.columns]):

    A   B   C
1   A1  B1  C1
2   A2  B2  C2
3   NaN B3  C3
4   NaN B4  C4

这有效,但是引发了一个

FutureWarning: The join_axes-keyword is deprecated. Use .reindex or .reindex_like on the result to achieve the same functionality.

我(在文档中或通过Google)都找不到如何“对结果使用.reindex或.reindex_like来实现相同的功能”。

说明问题:https://colab.research.google.com/drive/13EBq2z0Nh05JY7ovrdnLGtfeqdKVvZq0

的Colab笔记本

3 个答案:

答案 0 :(得分:1)

就像提到的错误一样,添加reindex

pd.concat([df1,df2.reindex(columns=df1.columns)])
Out[286]: 
     A   B   C
1   A1  B1  C1
2   A2  B2  C2
3  NaN  B3  C3
4  NaN  B4  C4

答案 1 :(得分:1)

df1 = pd.DataFrame({'A': ['A1', 'A2'], 'B': ['B1', 'B2'], 'C': ['C1', 'C2']})
df2 = pd.DataFrame({'B': ['B3', 'B4'], 'C': ['C3', 'C4'], 'D': ['D1', 'D2']})

pd.concat([df1, df2], sort=False)[df1.columns]

产生期望的结果。

答案 2 :(得分:1)

或...

pd.concat([df1, df2], sort=False).reindex(df1.columns, axis=1)

输出:

     A   B   C
1   A1  B1  C1
2   A2  B2  C2
3  NaN  B3  C3
4  NaN  B4  C4