基本上,我有一个Ike三明治的数据框架,它有三列:成分/名称/价格,成分列是成分列表['x','y','z']
不幸的是,当我抓取列表时,它保留了奇怪的空格和其他格式,现在我想修改列中的成分列表,去掉空格并强制小写。在
示例:
0 [Avocado, French Dressing, Gouda, Ham, Sal... Al Bundy $9.99
1 [Caesar, Halal Chicken, Marinated Artichoke ... Backstabber $9.99
2 [Bacon, Swiss, Turkey] Barry B. $8.98
3 [Avocado, Havarti, Turkey] Barry Z. $8.98
4 [Avocado, Halal Chicken, Honey Mustard, Pep... Bella $9.99
问题是:
^{pr2}$注意空格
我试着做:
for sandwich in mdf.ingredients:
for ingredient in sandwich:
ingredient = ingredient.strip()
ingredient = ingredient.lower()
如果我在循环中打印component,就完成了我的目标,但实际上并没有改变数据帧中的值。在
有没有必要更改这些列表中的值,或者我需要用更正的值创建一个全新的列?在
要修改
df['ingredients']
,可以将其分配给一个列表列表。例如,如果df
如下所示:那么
^{pr2}$使
df
看起来像然而,拥有一列列表通常不太方便。如果你想找到所有以瑞士为原料的项目,你必须循环每一行,检查该行是否有瑞士,然后返回该行。在
相反,如果您规范化DataFrame,使每个项都有自己的列,那么这种搜索可以更容易地表达。在
例如:
生成一个看起来像
现在要查找包含瑞士语的所有项目,您可以使用:
顺便说一下,这个代码:
不影响
sandwich
,因为在循环内部,变量ingredient
正在将重新分配到一个新值。它不会更改sandwich
中的值。理解这一点是理解Python's name/reference model的基本要素。在相关问题 更多 >
编程相关推荐