PANDAS面板数据转换为dict字典数据

本文介绍了多种将Pandas DataFrame转换为Python字典的方法,包括使用to_dict()函数的不同参数选项,以及通过dict()和zip()函数实现转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们来总结几种将dataframe转换为字典的方法。1.使用 to_dict() 函数将 Pandas DataFrame 转换为字典Pandas to_dict() 函数将一个 DataFrame 转换为一个字典。参数决定了字典的格式和键值对的关联方式。下面是一个使用 to_dict() 将 DataFrame 转换为 Dictionary 的基本示例。import pandas as pd


```python
df = pd.DataFrame([['Jay',16,'BBA'],
                   ['Jack',19,'BTech'],
                   ['Mark',18,'BSc']],
                  columns = ['Name','Age','Course'])

d1 = df.to_dict()
print(d1)
输出:
{'Name': {0: 'Jay', 1: 'Jack', 2: 'Mark'}, 'Age': {0: 16, 1: 19, 2: 18}, 'Course': {0: 'BBA', 1: 'BTech', 2: 'BSc'}}

正如你在输出中看到的,列名被转换为键,每条记录作为值,索引作为它们的键。2.Pandas DataFrame 转换字典的方法我们可以通过参数list、records、series、index、split和dict来改变最终字典的格式。例如,当我们传递list和series作为参数时,我们将列名作为键,但值对分别被转换为列表和系列行。下面的例子将证明这一点。import pandas as pd

df = pd.DataFrame([['Jay',16,'BBA'],
                   ['Jack',19,'BTech'],
                   ['Mark',18,'BSc']],
                  columns = ['Name','Age','Course'])

d_list  = df.to_dict('list')
print(d_list)

d_series = df.to_dict('series')
print(d_series)输出:{'Name': ['Jay', 'Jack', 'Mark'], 'Age': [16, 19, 18], 'Course': ['BBA', 'BTech', 'BSc']}

{'Name': 0     Jay
1    Jack
2    Mark
Name: Name, dtype: object, 'Age': 0    16
1    19
2    18
Name: Age, dtype: int64, 'Course': 0      BBA
1    BTech
2      BSc
Name: Course, dtype: object}3.Pandas DataFrame 转换为字典列表我们也可以将每一行作为一个单独的字典传递给函数 records。最后的结果是一个列表,每一行都是一个字典。例如:import pandas as pd

df = pd.DataFrame([['Jay',16,'BBA'],
                   ['Jack',19,'BTech'],
                   ['Mark',18,'BSc']], columns = ['Name','Age','Course'])

d_records = df.to_dict('records')
print(d_records)输出:[{'Name': 'Jay', 'Age': 16, 'Course': 'BBA'}, {'Name': 'Jack', 'Age': 19, 'Course': 'BTech'}, {'Name': 'Mark', 'Age': 18, 'Course': 'BSc'}]python基础知识资料分享给大家~~~  获取方式:【资料免费领】| 程序员必备指南+Python学习资料,0元抱走!4.Pandas DataFrame 按行转为字典但是在很多情况下,我们可能不希望列名作为字典的键。对于这种情况,我们可以传递index来使 DataFrame 索引作为键。下面的代码片段展示了这一点。import pandas as pd

df = pd.DataFrame([['Jay',16,'BBA'],
                   ['Jack',19,'BTech'],
                   ['Mark',18,'BSc']], columns = ['Name','Age','Course'])

d_index = df.to_dict('index')
print(d_index)输出:{0: {'Name': 'Jay', 'Age': 16, 'Course': 'BBA'}, 1: {'Name': 'Jack', 'Age': 19, 'Course': 'BTech'}, 2: {'Name': 'Mark', 'Age': 18, 'Course': 'BSc'}}5.Dataframe 转为以一列为键的字典但是,如果我们喜欢用一列的元素作为键,而用其他列的元素作为值呢?这可以通过简单地将所需的列作为 DataFrame 的索引,并使用 .T() 函数对其进行转置来实现。例子:import pandas as pd

df = pd.DataFrame([['Jay',16,'BBA'],
                   ['Jack',19,'BTech'],
                   ['Mark',18,'BSc']], columns = ['Name','Age','Course'])

d_names = df.set_index('Name').T.to_dict('list')
print(d_names)输出:{'Jay': [16, 'BBA'], 'Jack': [19, 'BTech'], 'Mark': [18, 'BSc']}6.使用 dict() 和 zip() 函数将 Pandas DataFrame 转为字典Python dict() 函数也可以将 Pandas DataFrame 转换为字典。我们还应该使用 zip() 函数,将各个列作为它的参数来创建并行迭代器。然后 zip() 函数将在每次迭代中产生一行的所有值。import pandas as pd

df = pd.DataFrame([['Jay',16,'BBA'],
                   ['Jack',19,'BTech'],
                   ['Mark',18,'BSc']], columns = ['Name','Age','Course'])

d =  dict([(i,[a,b]) for i,a,b in zip(df['Name'], df['Age'],df['Course'])])
print(d)
输出:
{'Jay': [16, 'BBA'], 'Jack': [19, 'BTech'], 'Mark': [18, 'BSc']}多动手,多练习,多理解,加
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值