为什么输出中“三”列显示在“二”列之前?我编写了代码以在“一”和“二”之后添加列“三”?
上面的源代码和我得到的输出在图像中位于它的下面。 我运行了另一个代码来向 DataFrame 添加列,它按我的预期工作,但为什么会出现这种异常?
# The append() function can be used to add more rows to the DataFrame
data2= {'one': pd.Series([1,2,3], index = ['a', 'b', 'c']), '二':pd.Series([1,2,3,4], 索引 = ['a', 'b', 'c', 'd'])}| ||table5 pd.DataFrame(data2) table5 ['三'] = pd.Series([10,20,30], 索引 = ['a', 'b', 'c'])
row = pd .DataFrame([[11,13],[17,19]],columns = ['二','三'])
table6 table5.append(row)
print(table6)
print(table6)
熊猫 DataFrame 不会保留插入列的顺序,而是按字母顺序对其进行排序。如果你想要特定的列顺序,你可以在构造或操作后使用
reindex
方法。
以下是如何使用
reindex
控制列顺序的方法:
import pandas as pd
data2 = {'one': pd.Series([1, 2, 3], index=['a', 'b', 'c']),
'二': pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}
table5 = pd.DataFrame(data2)
table5['三'] = pd.Series([10, 20, 30], index=['a', 'b', 'c'])
# 将行追加到 DataFrame(列顺序在这里不重要)
row = pd.DataFrame([[11, 13], [17, 19]], columns=['二', '三'])
table6 = table5.append(row)
# 使用 reindex 定义所需的列顺序
table6 = table6.reindex(columns=['one', '二', '三'])
print(table6)
这将按照你期望的顺序打印出 DataFrame,其中列为“一”,“二”,“三”。
reindex
方法允许你通过传递所需顺序的列名列表来重新排列 DataFrame。