【问题标题】:Python - Can't parse a tuple to DataFrame [closed]Python - 无法将元组解析为 DataFrame [关闭]
【发布时间】:2021-03-05 00:07:24
【问题描述】:

我在一个列表中收到多个值,格式如下: [(id_customer, name_customer, category, start_date, value), (id_customer, name_customer, category, start_date, value),(id_customer, name_customer, category, start_date, value)...]

我想要的是将此列表解析为单个数据框。为此,我试图将列表转换为元组,然后创建我的数据框。但我收到以下错误:

ValueError: Shape of passed values is (3, 1), indices imply (3, 5)

我的初始列表有以下数据:

[('1', 'OIL COMPANY,LDA', 'ENERGY', '2010-11-10', 13.), ('100', 'SPORTS ,LDA', 'SPORT', '2020-11-01', 12.), ('7', 'INFORMATIC,LDA', 'IT', '2019-01-03', 23.)]

我的代码:

tuple_del = tuple(myList)
df = pd.DataFrame(tuple_del, columns=['id', 'name', 'category', 'date', 'value'])

我想得到:

id, name, category, date, value
1,'OIL COMPANY,LDA', 'ENERGY', '13.'
100,'SPORTS ,LDA', 'SPORT', 2020-11-01, '12.'
7, 'INFORMATIC,LDA', 'IT', '2019-01-03', '23.'

【问题讨论】:

  • listtuple 正在处理您的示例数据。
  • 您的数据正在运行...
  • yes :( 很奇怪,因为如果我在列表变量中传递列表,它工作正常。但我正在使用“PySimpleGUI”中的接口,并且我正在从列表框中接收列表,使用列表中的值转换为数据框它给了我那个错误......

标签: python pandas list tuples


【解决方案1】:

为了得到你的目标,你只需添加到你的代码中:

df=df.set_index('id')

完整代码:

import pandas as pd

myList=[('1', 'OIL COMPANY,LDA', 'ENERGY', '2010-11-10', 13.), ('100', 'SPORTS ,LDA', 'SPORT', '2020-11-01', 12.), ('7', 'INFORMATIC,LDA', 'IT', '2019-01-03', 23.)]
df = pd.DataFrame(myList, columns=['id', 'name', 'category', 'date', 'value'])

df=df.set_index('id')

print(df)

输出是

                name category        date  value
id                                              
1    OIL COMPANY,LDA   ENERGY  2010-11-10   13.0
100      SPORTS ,LDA    SPORT  2020-11-01   12.0
7     INFORMATIC,LDA       IT  2019-01-03   23.0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-05
    • 1970-01-01
    • 1970-01-01
    • 2017-11-06
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 1970-01-01
    相关资源
    最近更新 更多