首页 > 解决方案 > 在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

标签: pythonpandasloops

解决方案


您的数据结构类似于字典。您可以将其转换为 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)

推荐阅读