值错误将嵌套列表保存到 DataFrame - Python、Pandas

我正在尝试将嵌套列表发送到数据框,如下所示:


import pandas as pd

import numpy as np


def save_data(data):


    df = pd.DataFrame(data=[data], columns=['Send/Collect', 'Hospital', 'Courier', 'Kit', 'Manufacturer'])



save_data([["One", "Two","Three", "Four", "Five"],

           ["One", "Two","Three", "Four", "Five"],

           ["One", "Two","Three", "Four", "Five"]])

但是,这会导致断言错误如下:


断言错误:通过了 5 列,传递的数据有 3 列


正如在Git和另一个问题上所见,我尝试按照建议将数据制作成numpy数组,但这现在返回了这个稍微混乱的错误:


ValueError:必须通过二维输入


在实际代码中,列表的大小会随着固定的列大小而变化,所以我不知道如何解决这个问题!


米脂
浏览 194回答 2
2回答

至尊宝的传说

对我来说,[]如果使用嵌套lists 和嵌套列表的最大长度与列数相同(此处为 5),则从 DataFrame 构造函数中删除:def save_data(data):    df = pd.DataFrame(data=data, columns=['Send/Collect', 'Hospital',                                          'Courier', 'Kit', 'Manufacturer'])    return dfL = [["One", "Two","Three", "Four", "Five"],     ["One", "Two","Three", "Four", "Five"],     ["One", "Two","Three", "Four", "Five"]]df = save_data(L)print (df)  Send/Collect Hospital Courier   Kit Manufacturer0          One      Two   Three  Four         Five1          One      Two   Three  Four         Five2          One      Two   Three  Four         Five您还可以创建检查条件:def save_data(data):    if max(len(x) for x in L) == 5:        df = pd.DataFrame(data=data, columns=['Send/Collect', 'Hospital', 'Courier',                                               'Kit', 'Manufacturer'])    return dfL = [["One", "Two","Three", "Four", "Five"],     ["One", "Two","Three", "Four", "Five"],     ["One", "Two","Three", "Four"]]df = save_data(L)print (df)  Send/Collect Hospital Courier   Kit Manufacturer0          One      Two   Three  Four         Five1          One      Two   Three  Four         Five2          One      Two   Three  Four         None

catspeake

您从数据中删除括号,例如。def save_data(data):    df = pd.DataFrame(data=data, columns=['Send/Collect',                                          'Hospital',                                          'Courier',                                          'Kit',                                          'Manufacturer'])    return df
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python