Pandas:datafram具有不同列的元组列表

2024-09-29 23:29:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我从一个数据库中提取了数据,这个数据库是元组列表,但是列表没有保证格式。列表实际上是由类似JSON的属性:参数组合公司名称:

example_data = [('ID1', 12 ,['Name','Age','Job'], ['John','33','Driver']),('ID2',21, ['Name', 'Car'], ['Jane', 'Honda'])]

我需要的是一个数据帧,它填充字段,但将未知字段保留为None或NaN:

^{pr2}$

目前正在做一个直接上升pd数据帧(示例_data)返回:

     0   1                 2                   3
0  ID1  12  [Name, Age, Job]  [John, 33, Driver]
1  ID2  21       [Name, Car]       [Jane, Honda]

这是没用的。在


Tags: 数据name数据库列表agedatadriverjob
2条回答

你可以这样做

import pandas as pd

example_data = [('ID1', 12, ['Name', 'Age', 'Job'], ['John', '33', 'Driver']), ('ID2', 21, ['Name', 'Car'], ['Jane', 'Honda'])]

def change_dataframe():
    temp_list = []
    for data in example_data:
        temp_dict = {'ID': data[0], 'IX': data[1]}
        temp_dict.update(dict(zip(data[2], data[3])))
        temp_list.append(temp_dict)
    return pd.DataFrame.from_dict(temp_list)

change_dataframe()

你可以这样做

import pandas as pd

example_data = [('ID1', 12 ,['Name','Age','Job'], ['John','33','Driver']),('ID2',21, ['Name', 'Car'], ['Jane', 'Honda'])]

l = []
for example in example_data:
    d = dict()
    d['id'] = example[0]
    d['row'] = example[1]
    for key, attribute in zip(example[2], example[3]):
        d[key] = attribute
    l.append(d)


df = pd.DataFrame(l)
print(df)

   Age    Car     Job  Name   id  row
0   33    NaN  Driver  John  ID1   12
1  NaN  Honda     NaN  Jane  ID2   21

如果格式-元组是一致的,就可以了。您还可以检查描述和值的列表是否具有相同的长度。在

相关问题 更多 >

    热门问题