pandas.DataFrame.from_dict 不使用 OrderedDict 保留顺序

作者:编程家 分类: pandas 时间:2025-10-12

使用pandas库中的DataFrame.from_dict方法可以根据一个字典生成一个数据表格。默认情况下,使用这个方法生成的数据表格会按照字典键的顺序排列,但不会保留原始字典的顺序。然而,我们可以通过一些技巧来保留顺序。

首先,让我们来看一个简单的例子。假设我们有一个字典,其中包含了一些学生的信息,包括姓名、年龄和成绩。我们可以使用DataFrame.from_dict方法将这个字典转换为一个数据表格。

python

import pandas as pd

# 定义一个字典,包含学生的信息

student_dict = {

'姓名': ['张三', '李四', '王五'],

'年龄': [18, 19, 20],

'成绩': [85, 92, 88]

}

# 使用from_dict方法将字典转换为数据表格

df = pd.DataFrame.from_dict(student_dict)

# 打印数据表格

print(df)

输出结果如下所示:

姓名 年龄 成绩

0 张三 18 85

1 李四 19 92

2 王五 20 88

可以看到,DataFrame.from_dict方法生成的数据表格默认按照字典键的顺序排列。但如果我们修改字典的顺序,再进行转换,结果将会发生变化。

为了保留原始字典的顺序,我们可以使用collections模块中的OrderedDict类。OrderedDict类是一个有序字典,它会按照元素添加的顺序进行排序。我们可以将字典转换为OrderedDict,然后再使用DataFrame.from_dict方法生成数据表格。

下面是一个示例代码:

python

import pandas as pd

from collections import OrderedDict

# 定义一个有序字典,包含学生的信息

student_dict = OrderedDict([

('姓名', ['张三', '李四', '王五']),

('年龄', [18, 19, 20]),

('成绩', [85, 92, 88])

])

# 使用from_dict方法将有序字典转换为数据表格

df = pd.DataFrame.from_dict(student_dict)

# 打印数据表格

print(df)

输出结果与之前相同:

姓名 年龄 成绩

0 张三 18 85

1 李四 19 92

2 王五 20 88

通过使用collections模块中的OrderedDict类,我们成功地保留了字典的顺序,并且生成了按照顺序排列的数据表格。

案例代码:

python

import pandas as pd

from collections import OrderedDict

# 定义一个有序字典,包含学生的信息

student_dict = OrderedDict([

('姓名', ['张三', '李四', '王五']),

('年龄', [18, 19, 20]),

('成绩', [85, 92, 88])

])

# 使用from_dict方法将有序字典转换为数据表格

df = pd.DataFrame.from_dict(student_dict)

# 打印数据表格

print(df)

以上就是使用pandas的DataFrame.from_dict方法生成保留顺序的数据表格的方法。通过使用collections模块中的OrderedDict类,我们可以很方便地保留字典的顺序。这对于需要按照特定顺序对数据进行处理或展示的场景非常有用。