我有两个列表,我想将它们作为两个单独的数组合并到一个数据帧中。问题是,我正在使用的数据不完整并且缺少信息
数据
创建 3 个列表
Name = [item[0] for item in Data if item]
Age = [item[1] for item in Data if item]
Fruit = [item[2] for item in Data if item]
产生:
Name = ['John', 'Eric', 'Dave', 'Mike', 'Charlotte']
Age = ['32', '25', '31']
Fruit = ['Apple', 'Banana', 'Pear']
但是,当尝试
pd.DataFrame
时,这显然会导致错误,因为列表的长度不同。
有没有一种方法可以提高我的列表理解能力,插入空白或默认值以确保我的列表保持相同的长度,从而产生类似的结果:
Name = ['John', 'Eric', 'Dave', 'Mike', 'Charlotte']
Age = ['32', '', '25', '31', '']
Fruit = ['', 'Apple', 'Banana', 'Pear', '']
我很难理解你的
Data
是如何表示的。因为,如果第二行(Data[1]
)在索引1
处没有任何内容,那么你的代码应该产生
Age = ["Apple", 25, 31]
然后是一个 IndexError,因为最后一行的第二列上没有任何内容。这意味着存在某种占位符来指示空槽。因此,您可以检查该值的等价性并相应地分配值。
鉴于占位符是
None
,您可以执行以下操作...
Name = [ (i[2] if i[2] is not None else "") for i in Data ]
万一,每个子数组预处理的长度不同,即没有任何值(我仍然很困惑你如何在最后一行没有得到 IndexError
Fruit
理解),可以填None然后使用上面的方法