python - 在python中对齐列位置和对应的值
问题描述
原始数据格式说第 1 行是 (1:20 3:25 5:24 9:20)。
我正在尝试使用 python pandas 或 python 中的任何其他方式将原始数据集转换为数据帧。我将原始数据集拆分为两个列表样本属性列表和 Sample_value 列表。
sample_attribute
[[1,3,5,9],[3,5,7,10],[1,4,8,10]]
sample_value
[[20,25,24,20],[16,20,24,21],[12,20,24,17]
The perspective data frame should look like
Column: 1 2 3 4 5 6 7 8 9 10
row 1: 20 0 25 0 24 0 0 0 20 0
row 2: 0 0 16 0 20 0 24 0 0 21
row 3: 12 0 0 20 0 0 0 24 0 17
解决方案
您的数据结构类似于字典。您可以将其转换为 Python 字典,然后使用 pandas 内置的 from_dict 方法:
import pandas as pd
sample_attribute = [[1,3,5,9],[3,5,7,10],[1,4,8,10]]
sample_value = [[20,25,24,20],[16,20,24,21],[12,20,24,17]]
# store sample in list of dictionaries
sample = [dict(zip(keys, values)) for keys, values in zip(sample_attribute,sample_value)]
# create dataframe
df = pd.DataFrame(sample)
# add columns without values
df = df.reindex(range(df.columns.min(),df.columns.max()+1),axis=1)
# replace NAN with zero
df = df.fillna(0)
推荐阅读
- visual-studio-code - 如何使用 sublime 键盘快捷键等一个键绑定向选择或整行添加评论?
- c# - 列表
加入数据表 - python - 如果因变量既有正值又有负值,如何处理任何机器学习算法?
- aws-amplify - 我可以使用 AWS Amplify 创建在将新图像上传到 S3 时触发 lambda 函数的 SQS
- javascript - 使用 javascript 时无法调整设计
- c# - SQL/VisualStudio 的“插入语句”中的多线程
- node.js - 在单个查询中计算 mongoose 中的文档
- apache-kafka - Kafka excatly-once 生产者消费者
- javascript - 如何在不破坏堆栈的情况下等待异步任务数组?
- jpa - 使用 ORM/JPA 的单表策略时如何使用从 JPQL 中的父实体继承的属性(列)