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)


 

 

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐