我
concat使用的是Dataframe:
In [23]:df = pd.Dataframe(columns=['A'])dfOut[23]:Empty DataframeColumns: [A]Index: []In [24]: pd.concat([df,pd.Dataframe(columns=list('BCD'))])Out[24]:Empty DataframeColumns: [A, B, C, D]Index: []因此,通过传递包含原始df的列表以及包含您要添加的列的新列表,这将返回包含其他列的新df。
警告:请参阅其他答案和/或评论讨论中有关性能的讨论。
reindex在性能至关重要的情况下可能更可取。
例:
您可以df.reindex用来添加新列:
In [18]: df = pd.Dataframe(np.random.randint(10, size=(5,1)), columns=['A'])In [19]: dfOut[19]: A0 41 72 03 74 6In [20]: df.reindex(columns=list('ABCD'))Out[20]: A B C D0 4 NaN NaN NaN1 7 NaN NaN NaN2 0 NaN NaN NaN3 7 NaN NaN NaN4 6 NaN NaN NaNreindex 将返回一个新的Dataframe,其列按列出的顺序显示:
In [31]: df.reindex(columns=list('DCBA'))Out[31]: D C B A0 NaN NaN NaN 41 NaN NaN NaN 72 NaN NaN NaN 03 NaN NaN NaN 74 NaN NaN NaN 6该reindex方法也作为fill_value参数:
In [22]: df.reindex(columns=list('ABCD'), fill_value=0)Out[22]: A B C D0 4 0 0 01 7 0 0 02 0 0 0 03 7 0 0 04 6 0 0 0


