微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python列表到dataframe – AssertionError

我在python中有一个列表列表.我试图将其转换为数据帧.例如=

foo = [
    [1,2,3...],
    [a,b,c...],
    [aa,bb,cc...]
]

这3个列表中的每一个都包含100个元素.我尝试了以下转换为数据帧 –

df = pandas.DataFrame(foo, columns=headers)  // where headers is ['id', 'fname', 'lname']
df = pandas.DataFrame(foo, columns=[foo[0], foo[1], foo[2]])

但是我收到这个错误

AssertionError: 3 columns passed, passed data had 100 columns

解决方法:

您可以尝试以下方法.该错误来自于使用pandas.DataFrame构造函数时每个子列表被解释为一行的事实.您可以从标题和列表中创建字典:

import pandas as pd
headers = ['id', 'fname', 'name']
df = pd.DataFrame(dict(zip(headers, foo)))

df
#fname  id  lname
#0   a   1     aa
#1   b   2     bb
#2   c   3     cc
#3   d   4     dd
#4   e   5     ee

或转置列表:

df = pd.DataFrame(list(zip(*foo)), columns=headers)

df
#  id   fname   lname
#0  1       a      aa
#1  2       b      bb
#2  3       c      cc
#3  4       d      dd
#4  5       e      ee

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐