In [18]: df = pd.DataFrame(np.random.randint(10, size=(5,1)), columns=['A'])
In [19]: df
Out[19]:
A
0 4
1 7
2 0
3 7
4 6
In [20]: df.reindex(columns=list('ABCD'))
Out[20]:
A B C D
0 4 NaN NaN NaN
1 7 NaN NaN NaN
2 0 NaN NaN NaN
3 7 NaN NaN NaN
4 6 NaN NaN NaN
reindex将返回一个新的DataFrame,其中的列按其列出的顺序显示:
In [31]: df.reindex(columns=list('DCBA'))
Out[31]:
D C B A
0 NaN NaN NaN 4
1 NaN NaN NaN 7
2 NaN NaN NaN 0
3 NaN NaN NaN 7
4 NaN NaN NaN 6
reindex方法也作为fill_value参数:
In [22]: df.reindex(columns=list('ABCD'), fill_value=0)
Out[22]:
A B C D
0 4 0 0 0
1 7 0 0 0
2 0 0 0 0
3 7 0 0 0
4 6 0 0 0
8条答案
按热度按时间ghhaqwfi1#
您可以使用
df.reindex
添加新列:reindex
将返回一个新的DataFrame,其中的列按其列出的顺序显示:reindex
方法也作为fill_value
参数:j2cgzkjk2#
我想
concat
使用数据框:因此,通过传递一个包含原始df的列表和一个包含希望添加的列的新列表,这将返回一个包含附加列的新df。
警告:请参阅其他answers中的性能讨论和/或评论讨论。在性能至关重要的情况下,
reindex
可能更可取。lg40wkob3#
如果您不想重写旧列的名称,那么您可以使用reindex:
完整示例:
而且,如果您已经有一个包含列名的列表:
bnlyeluc4#
替代解决方案总结:
1.元组赋值:
41zrol4v5#
为什么不直接使用循环:
jaql4c8m6#
您可以使用Pandas broadcasting:
结果:
要添加空列:
结果:
k0pti3hp7#
我会用
或
zpqajqem8#
只是为了增加有趣的方式列表: