Python 从序列生成数据帧时保持列顺序
当我尝试使用不同的索引为这两个系列创建一个Python 从序列生成数据帧时保持列顺序,python,python-3.x,pandas,Python,Python 3.x,Pandas,当我尝试使用不同的索引为这两个系列创建一个数据帧时,pandas不会保留该系列中列的顺序,如下所示 index = ['one','two','three','four','five','six','seven','eight','nine','ten'] index2 = index[:9] + ['Ha'] a = pd.Series(list(range(10)), index = index) b = pd.Series(list(range(10)), index = index2)
数据帧时,pandas不会保留该系列中列的顺序,如下所示
index = ['one','two','three','four','five','six','seven','eight','nine','ten']
index2 = index[:9] + ['Ha']
a = pd.Series(list(range(10)), index = index)
b = pd.Series(list(range(10)), index = index2)*2
df = pd.DataFrame([a,b], index = ['tens','times2'])
输出
Ha eight five four nine one seven six ten three two
但是当我使用具有相同索引的序列创建数据帧
时,原始列顺序(列表索引
的顺序)被保留。为什么会发生这种情况?这是因为当2系列的索引不匹配时,熊猫会将它们合并在一起,并按字母顺序排列列。这使得数据帧的列具有顺序,我猜您希望在创建数据帧后需要对它们重新排序
df=pd.DataFrame([a,b],index=['tens','times2'])
df=df.reindex_轴(索引+['Ha'],轴='columns')
df.reindex_轴
是一种更快的方法,可以实现df=df[index+['Ha']]
可能的重复