看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
pandas.DataFrame.from_dict
是一个类方法,用于从字典类型的数据创建一个 DataFrame
。它支持多种不同的数据结构,并允许通过参数来控制 DataFrame
的结构和内容。下面是对这个方法的详细讲解。
classmethod DataFrame.from_dict(
data,
orient='columns',
dtype=None,
columns=None
)
data:
orient:
'columns'
'columns'
:字典的键作为列标签,值作为列中的数据。'index'
:字典的键作为行标签,值作为行中的数据。dtype:
None
DataFrame
的数据类型。如果为 None
,则数据类型会自动推断。columns:
None
DataFrame
的列标签。如果 orient='index'
,此参数会被忽略。如果不为 None
,columns
必须与数据中的键匹配,否则会引发错误。pandas.DataFrame
对象。DataFrame.from_dict
常用于将字典类型的数据转换为 DataFrame
,特别适合处理字典嵌套结构或列表字典的情况。它的灵活性允许用户根据数据结构的不同来指定行或列标签。
默认情况下,dict的键变为DataFrame列:
data = {'col_1': [3, 2, 1, 0], 'col_2': ['a', 'b', 'c', 'd']}
pd.DataFrame.from_dict(data)
'''
col_1 col_2
0 3 a
1 2 b
2 1 c
3 0 d
'''
指定oriente='index'以使用字典键作为行创建DataFrame:
data = {'row_1': [3, 2, 1, 0], 'row_2': ['a', 'b', 'c', 'd']}
pd.DataFrame.from_dict(data, orient='index')
'''
0 1 2 3
row_1 3 2 1 0
row_2 a b c d
'''
使用“索引”方向时,可以手动指定列名:
pd.DataFrame.from_dict(data, orient='index',
columns=['A', 'B', 'C', 'D'])
'''
A B C D
row_1 3 2 1 0
row_2 a b c d
'''
指定oriental使用'tight'格式创建DataFrame:
data = {'index': [('a', 'b'), ('a', 'c')],
'columns': [('x', 1), ('y', 2)],
'data': [[1, 3], [2, 4]],
'index_names': ['n1', 'n2'],
'column_names': ['z1', 'z2']}
pd.DataFrame.from_dict(data, orient='tight')
'''
z1 x y
z2 1 2
n1 n2
a b 1 3
c 2 4
'''
orient='columns'
import pandas as pd
data = {
"A": [1, 2, 3],
"B": [4, 5, 6],
"C": [7, 8, 9]
}
df = pd.DataFrame.from_dict(data)
print(df)
输出:
A B C
0 1 4 7
1 2 5 8
2 3 6 9
说明:默认情况下,orient
为 'columns'
,字典的键成为 DataFrame
的列标签,字典的值对应每一列的数据。
orient='index'
data = {
"row1": {"A": 1, "B": 2, "C": 3},
"row2": {"A": 4, "B": 5, "C": 6},
"row3": {"A": 7, "B": 8, "C": 9}
}
df = pd.DataFrame.from_dict(data, orient='index')
print(df)
输出:
A B C
row1 1 2 3
row2 4 5 6
row3 7 8 9
说明:使用 orient='index'
时,字典的键作为行标签,值(嵌套字典的键)成为 DataFrame
的列标签。
dtype
data = {
"A": [1, 2, 3],
"B": [4, 5, 6],
"C": [7, 8, 9]
}
df = pd.DataFrame.from_dict(data, dtype='float')
print(df)
输出:
A B C
0 1.0 4.0 7.0
1 2.0 5.0 8.0
2 3.0 6.0 9.0
说明:dtype='float'
指定了 DataFrame
中所有列的数据类型为浮点型。
columns
参数data = {
"A": [1, 2, 3],
"B": [4, 5, 6],
"C": [7, 8, 9]
}
df = pd.DataFrame.from_dict(data, columns=["B", "A"])
print(df)
输出:
B A
0 4 1
1 5 2
2 6 3
说明:通过 columns
参数指定了 DataFrame
的列顺序,DataFrame
只会保留 columns
中提到的列。
DataFrame.from_dict
是一个强大的工具,能够方便地从字典数据创建 DataFrame
,并通过 orient
、dtype
和 columns
等参数灵活控制数据的显示方式。这个方法非常适用于数据预处理和数据整理的场景。
更新时间:2024-09-02 09:21:54 标签:pandas python dataframe 字典