目录
大家好,我是布丁_码上成功,明天就是端午节了,祝大家端午安康,事业荣光。
今天给大家分享一下如何使用Pandas将DataFrame类型数据转换成字典(dict)类型数据的方法及实例。
在日常的数据处理与分析工作中,我们经常需要将DataFrame数据转换成字典以便于使用。这时候,我们可以使用Pandas提供的to_dict()函数来实现。
to_dict()函数的具体用法如下所示:
dataframe.to_dict(orient=' ')
其中orient表示转换成字典后的形式。接下来,我们就分别来看一下不同形式下的转换实例。
1.dict形式
dict形式是to_dict()函数的默认形式,可以用以下语句进行转换:
df.to_dict()
例如,我们建立一个4x3的DataFrame数据表如下所示:
A | B | C | |
---|---|---|---|
0 | 1 | 4 | 7 |
1 | 2 | 5 | 8 |
2 | 3 | 6 | 9 |
3 | 10 | 40 | 70 |
将上述数据表转换成字典形式,直接调用to_dict()即可,其输出结果如下所示:
{ 'A': { 0: 1, 1: 2, 2: 3, 3: 10 },
'B': { 0: 4, 1: 5, 2: 6, 3: 40 },
'C': { 0: 7, 1: 8, 2: 9, 3: 70 }
}
2.list形式
在转换成list形式时,DataFrame中每列对应的值转换成Python列表(list),如下所示:
df.to_dict('list')
以上述数据表为例,其输出结果如下所示:
{ 'A': [1, 2, 3, 10],
'B': [4, 5, 6, 40],
'C': [7, 8, 9, 70]
}
3.series形式
在series形式中,字典的key值为DataFrame中的列名,而value值是将DataFrame的每一行按顺序展开而成的Series类型数据。例如:
df.to_dict('series')
以上述数据表为例,其输出结果如下所示:
{ 'A': 0 1
1 2
2 3
3 10
Name: A, dtype: int64,
'B': 0 4
1 5
2 6
3 40
Name: B, dtype: int64,
'C': 0 7
1 8
2 9
3 70
Name: C, dtype: int64
}
4.split形式
split形式比较特殊,其输出字典包含三个key值,分别为index、columns和data,分别对应行名、列名和数据。例如:
df.to_dict('split')
以上述数据表为例,其输出结果如下所示:
{ 'columns': [ 'A', 'B', 'C' ],
'data': [ [1, 4, 7], [2, 5, 8], [3, 6, 9], [10, 40, 70] ],
'index': [ 0, 1, 2, 3 ]
}
5.tight形式
tight形式在输出结果中包含了行名、列名、数据、列名等信息,是一种比较复杂的字典形式。示例如下:
df.to_dict('tight')
以上述数据表为例,其输出结果如下所示:
{ 'column_names': [ 'A', 'B', 'C' ],
'data': [ [1, 4, 7], [2, 5, 8], [3, 6, 9], [10, 40, 70] ],
'index': [ 0, 1, 2, 3 ],
'index_names': None
}
6.records形式
records形式是将每行转换成一个对应的字典。例如:
df.to_dict('records')
以上述数据表为例,其输出结果如下所示:
[ {'A': 1, 'B': 4, 'C': 7},
{'A': 2, 'B': 5, 'C': 8},
{'A': 3, 'B': 6, 'C': 9},
{'A': 10, 'B': 40, 'C': 70} ]
7.index形式
index形式与dict形式类似,不同之处在于它将DataFrame的索引转换成了字典的key值。例如:
df.to_dict('index')
以上述数据表为例,其输出结果如下所示:
{ 0: {'A': 1, 'B': 4, 'C': 7},
1: {'A': 2, 'B': 5, 'C': 8},
2: {'A': 3, 'B': 6, 'C': 9},
3: {'A': 10, 'B': 40, 'C': 70} }
8.结语
本文介绍了使用to_dict()函数来实现将DataFrame数据转换成字典数据的方法及不同形式下的实例展示,相信读者已经掌握了使用方法和技巧。在进行数据处理与分析过程中,如果有需要,可以灵活运用Pandas提供的丰富工具,提高工作效率,也可以通过多次实践不同形式下的转换方式来加深理解,更好地应用这些函数。
今天分享就到这里了,如果你对数据分析感兴趣,可以关注我,后面还会有其他的内容