当需要将 pandas 模块中的 DataFrame 类型数据转换成 Python 的字典类型数据时,我们可以使用 DataFrame 类的 to_dict() 方法。其主要参数为 orient 和 columns。
orient 参数指定了转换后字典的形式,有以下几种取值:
- 'dict':默认值。将每行数据转换成一个字典,返回值为字典类型,每个字典的 key 为列名,value 为对应的数据。
- 'list':将每行数据转换成一个列表,返回值为列表类型。
- 'series':将每列数据转换成一个 Series 类型,返回值为字典类型,每个字典的 key 为列名,value 为对应的 Series。
- 'split':将字典拆分成两个字典,一个字典中包含行索引信息,另一个字典中则为列名和数据信息。
columns 参数指定了需要转换的 DataFrame 中需要作为字典中 key 的列名列表,例如下面的代码仅将 DataFrame 中的 "A" 和 "B" 列作为字典中 key。
dict = df.to_dict('list', columns=['A', 'C'])
下面是两条 pythonDataFrame 转 dict 字典的示例:
1.将包含"Name", "Age","City"列拼接后的 DataFrame 转化成字典:
import pandas as pd
data = {'Name': ['Tom', 'Jack', 'Steve', 'Ricky'],
'City': ['Lisbon', 'Paris', 'Amsterdam', 'Hamburg'],
'Age': [28, 34, 29, 42]
}
df = pd.DataFrame(data)
dict1 = df.to_dict('list')
print(dict1)
输出:
{'Name': ['Tom', 'Jack', 'Steve', 'Ricky'],
'City': ['Lisbon', 'Paris', 'Amsterdam', 'Hamburg'],
'Age': [28, 34, 29, 42]}
2.将列索引为0且包含"ID", "Sex", "Category"列的数据框转换为字典:
import pandas as pd
data = {0: {'ID': 1, 'Sex': 'Male', 'Category': 'A'},
1: {'ID': 2, 'Sex': 'Female', 'Category': 'B'},
2: {'ID': 3, 'Sex': 'Male', 'Category': 'C'},
3: {'ID': 4, 'Sex': 'Female', 'Category': 'A'}
}
df = pd.DataFrame.from_dict(data, orient='index')
dict2 = df.to_dict('list')
print(dict2)
输出:
{'ID': [1, 2, 3, 4],
'Sex': ['Male', 'Female', 'Male', 'Female'],
'Category': ['A', 'B', 'C', 'A']}
通过以上示例,实际应用中的 Python DataFrame 转 dict 字典过程已经基本讲解完毕。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python DataFrame转dict字典过程详解 - Python技术站