python - 如何将字典的键和值转换为数据框列?
问题描述
我有一个 Python 字典,我无法将字典的键和值转换为数据框列。
import pandas as pd
data={'form-0-publish': ['05/28/2019'], 'form-0-cell': ['81'], 'form-0-cell_name': ['13a'], 'form-0-jam': ['07.00-08.00'], 'form-0-target': ['60'],
'form-1-publish': ['05/28/2019'], 'form-1-cell': ['81'], 'form-1-cell_name': ['13a'], 'form-1-jam': ['07.00-08.00'], 'form-1-target': ['60'],
'form-2-publish': ['05/28/2019'], 'form-2-cell': ['81'], 'form-2-cell_name': ['13a'], 'form-2-jam': ['07.00-08.00'], 'form-2-target': ['60'],
}
df = pd.DataFrame(data.items(), columns=['FormPublish', 'DatePublish', 'FormCell', 'Cell', 'FormCellName', 'FormCellName', 'FormJam', 'Jam', 'FormTarget', 'Target'])
df
预期结果:
> FormPublish DatePublish FormCell Cell FormCellName FormCellName
> FormJam Jam FormTarget Target 0 form-0-publish ['05/28/2019'] ... 1
> form-0-publish ['05/28/2019'] ... 3 form-0-publish ['05/28/2019'] ...
解决方案
我认为直接没有执行此类任务的功能,但我做了2个for
循环来获得您的结果:-
data={'form-0-publish': ['05/28/2019'], 'form-0-cell': ['81'], 'form-0-cell_name': ['13a'], 'form-0-jam': ['07.00-08.00'], 'form-0-target': ['60'],
'form-1-publish': ['05/28/2019'], 'form-1-cell': ['81'], 'form-1-cell_name': ['13a'], 'form-1-jam': ['07.00-08.00'], 'form-1-target': ['60'],
'form-2-publish': ['05/28/2019'], 'form-2-cell': ['81'], 'form-2-cell_name': ['13a'], 'form-2-jam': ['07.00-08.00'], 'form-2-target': ['60'],
}
my_list = [] #Getting all keys and values in a single list.
for key,value in data.items():
my_list.append(key)
my_list.append(*value)
new_list = []
extra_list = []
for index,var in enumerate(my_list): # Making pairs of 10 elements from my_list.
if index%10==0:
new_list.append(extra_list)
extra_list = []
extra_list.append(var)
else:
extra_list.append(var)
new_list.append(extra_list)
new_list.pop(0)
# Now we will use this new_list in DataFrame
df = pd.DataFrame(new_list, columns=['FormPublish', 'DatePublish', 'FormCell', 'Cell', 'FormCellName', 'FormCellName', 'FormJam', 'Jam', 'FormTarget', 'Target'])
df
输出
FormPublish DatePublish FormCell Cell FormCellName FormCellName FormJam Jam FormTarget Target
0 form-0-publish 05/28/2019 form-0-cell 81 form-0-cell_name 13a form-0-jam 07.00-08.00 form-0-target 60
1 form-1-publish 05/28/2019 form-1-cell 81 form-1-cell_name 13a form-1-jam 07.00-08.00 form-1-target 60
2 form-2-publish 05/28/2019 form-2-cell 81 form-2-cell_name 13a form-2-jam 07.00-08.00 form-2-target 60
我希望它可以帮助你。</p>
推荐阅读
- c# - 在 C# 中从 char 数据类型转换为 float、int 或 decimal 数据类型不正确
- sql - 在 PostgresSQL 中透视数据
- android - 创建看起来像这样的 TextView 的最佳方法
- python - AWS Lambda 中的多线程上传不适用于 s3 和 boto3
- javascript - 基于另一个对象删除数组的项
- ios - 使用模态 swift 中的数据重新加载 tableview
- git - 当源存储库路径包含空格时,如何使用 git p4 将存储库从 Perforce 迁移到 GitHub
- reactjs - 如何在 useState “React” 内的对象中推送 For 循环
- awk - 删除 csv [awk,sed] 中未执行列中的逗号
- angular - 在 Angular 中实现 Navigator.serial