提问人:Curious Student 提问时间:10/6/2023 更新时间:10/6/2023 访问量:71
Python 列表推导:如果 Item 不存在,请插入一个值?
Python List Comprehension: If Item Doesn't Exist, Insert a Value?
问:
我有两个列表,我想将它们合并为两个单独的数组,合并到一个数据帧中。问题是,我正在处理的数据是不完整的,并且缺少信息
数据
创建 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', '']
答:
0赞
Birnadin Erick
10/6/2023
#1
我正在努力弄清楚你的代表方式。因为,如果 2nd-row() 在 index 中没有任何东西,那么你的代码应该已经生成了Data
Data[1]
1
Age = ["Apple", 25, 31]
然后是 IndexError,因为最后一行的第 2 列没有任何内容。这意味着存在某种占位符来指示空插槽。因此,您可以检查该值的等效性并相应地分配值。
给定占位符是 ,您可以执行以下操作...None
Name = [ (i[2] if i[2] is not None else "") for i in Data ]
如果每个子数组预处理的长度不同,即没有任何值(我仍然很困惑你为什么没有在最后一行得到 IndexError
用于 Fruit-comprehension),你可以用 None 填充它,然后使用上面的方法。
评论