pandas读取字典(dict)数据

本文详细介绍了如何使用pandas DataFrame.from_dict方法将字典转换为DataFrame,包括默认列方式和索引方式,并展示了如何处理faker生成的仿真数据。重点讲解了在不同orient参数下的操作和注意事项。
摘要由CSDN通过智能技术生成

pandas读取字典(dict)数据

 

pandas.DataFrame.from_dict

 

# 默认orient ='columns'

# 默认orient ='columns'
data = {'col_1': [3, 2, 1, 0], 'col_2': ['a', 'b', 'c', 'd']}
pd.DataFrame.from_dict(data)

#设置orient = index

data = {'row_1': [3, 2, 1, 0], 'row_2': ['a', 'b', 'c', 'd']}
pd.DataFrame.from_dict(data, orient='index')

# 注意只有是orient = 'index'的时候才可以手动指定列名称, 否则会报错

# 注意只有是orient = 'index'的时候才可以手动指定列名称
pd.DataFrame.from_dict(data, orient='index',
                       columns=['A', 'B', 'C', 'D'])

# 错误代码

# 注意只有是orient = 'index'的时候才可以手动指定列名称
pd.DataFrame.from_dict(data, orient='columns',
                       columns=['A', 'B', 'C', 'D'])
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-80-4b25eb1c16ee> in <module>
      1 # 注意只有是orient = 'index'的时候才可以手动指定列名称
      2 pd.DataFrame.from_dict(data, orient='columns',
----> 3                        columns=['A', 'B', 'C', 'D'])

D:\anaconda\lib\site-packages\pandas\core\frame.py in from_dict(cls, data, orient, dtype, columns)
   1303         elif orient == "columns":
   1304             if columns is not None:
-> 1305                 raise ValueError("cannot use columns parameter with orient='columns'")
   1306         else:  # pragma: no cover
   1307             raise ValueError("only recognize index or columns for orient")

ValueError: cannot use columns parameter with orient='columns'

 

 

# 使用faker包生成仿真数据(dict,字典格式)并使用pandas读取

# !pip install faker
from faker import Faker
fake = Faker()

 #生成一个人相关的详细信息,以字典的形式进行组织
fake.profile()

# 生成字典并使用pandas读取

pd.DataFrame.from_dict(fake.profile(),orient = 'index')

# 获取dict的键

columns = list(fake.profile().keys())
columns

# pandas读取dict数据并进行转置

pd.DataFrame.from_dict(fake.profile(),orient = 'index').T

# 生成多条仿真数据并用pandas dataframe进行读取

#通过for循环把faker生成的数据组织起来存放在pandas dataframe中
# 生成list of dict
people_list = []
for i in range(10):
    people_list.append(fake.profile())


df = pd.DataFrame(people_list)
df.head(1)


 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Data+Science+Insight

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值