【发布时间】:2020-05-22 10:06:17
【问题描述】:
我有一个带有项目详细信息的 Pandas DataFrame。其中一列是重量,一些值在重量列中存储为 200kgs、120kgs 等。
我想去掉“kgs”字符串,以便可以使用这些值进行一些计算。我尝试通过 For 循环做同样的事情来剥离“公斤”
item = pd.read_csv('item_data.csv')
for x in item.Weight: # item.Weight shows the weights of the items
if type(x) == str:
item.Weight = x.strip('kgs')
else:
item.Weight = x
上面的代码去掉了“kgs”,但显示了所有行的第一个值!
item.Weight = [x.strip('kgs') if type(x)==str else x for x in item.Weight]
但是,当我执行列表理解时,如上所示,它可以工作!您能否解释一下为什么 For 循环似乎不起作用,但具有相同逻辑的 List Comprehension 起作用
【问题讨论】:
-
在没有 For 循环的情况下尝试了 Series.str.strip() 并且成功了,感谢您的建议。但是,我想知道为什么 for 循环不起作用,并感谢 SubhashR 向我解释。