python - 如何从包含列表列表的字典中创建多个数据框
问题描述
我有一个复杂的字典,如下所示
d = {'a':[['x','y'],['1','2']],'b':[['x','y'],['3','4']]}
我想在循环中将其转换为一组 pd 数据帧,例如
a
x y
1 2
b
x y
3 4
有什么建议可以实现吗?
解决方案
您可以将第一个列表用作列名,将其余列表用作行
import pandas as pd
d = {'a': [['x', 'y'], ['1', '2'], ['1', '2'], ['1', '2'], ['1', '2']],
'b': [['x', 'y'], ['3', '4'], ['3', '4'], ['3', '4'], ['3', '4']]}
# create dict of dataframes with dict comprehension
df_dict = {k: pd.DataFrame(v[1:], columns=v[0]) for k, v in d.items()}
# iterate through df_dict
for k, v in df_dict.items():
print(k)
print(v)
#############
a
x y
0 1 2
1 1 2
2 1 2
3 1 2
b
x y
0 3 4
1 3 4
2 3 4
3 3 4
推荐阅读
- python - 在后台运行 pyshark
- javascript - onclick 后清除搜索框
- stm32 - 无法在 CubeMX 上为双核 STM32H MCU 生成代码
- javascript - 在数据库中存储大量数据的最佳方法
- r - 如何使用 str_sub?
- python - 在 django 中使用 DeleteView 成功删除后尝试返回上一页时出现“找不到页面”错误
- sql - 如何使用 BigQuery 获取平均时间间隔(5 分钟)或记录数
- android - Android 10:android:foregroundServiceType="mediaProjection" 无法使用服务
- python - 基于重复的日期时间索引,用另一个数据帧中的值覆盖一个数据帧
- eclipse-hono - 从源代码构建荣誉时运行集成测试时出错 - 证书已过期