【发布时间】:2020-07-06 12:50:41
【问题描述】:
我有
['2013 (63 reg)', '76,869 miles', '2.0L','Manual', 'Diesel</li>\n</ul>']
['2011 (61 reg)', 'Estate', '2.0L', '135BHP','Manual', 'Diesel', '4 owners</li>\n</ul>']
['2011 (11 reg)', 'Saloon', '112,000 miles', '2.1L', '201BHP','Manual', 'Diesel', '4 owners', 'Partservice history</li>\n</ul>']
['2007 (07 reg)', 'Saloon', '98,000 miles','3.0L', '222BHP', 'Automatic', 'Diesel']
在数据框 df 的列数据中 我有这个代码来检查单词'miles'是否存在如果是它返回包含英里的字符串如果不是它应该返回空并将它存储在一个列表中
miles=[]
sub = 'miles'
for f in df['Data'] :
for text in f:
if sub in text:
miles.append(text)
else:
miles.append('')`
它为所有文本值返回' ',而不是每个列表
我在哪里得到了这样的东西
['',
'76,869 miles',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'112,000 miles',
'',
'',
'',
'',
'',
'',
'',
'',
'98,000 miles',
'',
]
我想去哪里
['76,869 miles',
'',
'112,000 miles',
'98,000 miles']
【问题讨论】:
-
您的
if条件目前工作正常!您已经在else期间附加了' '。请查看您的nested循环。在没有附加的情况下运行它,看看你的数据会是什么样子! -
当我删除 else 时,结果是 ['76,869 英里','112,000 英里','98,000 英里'],我不想要,因为我希望代码能够识别列表是否不包含'英里'并返回每个列表的空值..我尝试了很多我无法弄清楚
-
在这种情况下,您必须使用
generator并且不要在for循环下追加。涉及next函数。
标签: python pandas dataframe search arraylist