3 回答
TA贡献1725条经验 获得超7个赞
我认为您根本不需要使用 if 语句,也不需要使用数据帧的迭代。split 方法将获取第一次出现 '%' 之前的所有内容,并且如果它首先不包含 '%',则保持该值不变。
所以基本上只需这样做:
concat_data['% interest'] = concat_data['% interest'].str.split('%', expand=True)
假设您的数据看起来像“50.6%”。查看您的数据样本会很有帮助。
TA贡献1827条经验 获得超4个赞
数据
这就是该列的样子,我的代码应该忽略“0.005”之类的单元格,并将“7.75% (1M L+675, 1.00%”) 之类的单元格拆分为“7.75%”。
再次感谢。
TA贡献1816条经验 获得超6个赞
这里有一些选项...如果您想对数据帧的每一行执行与您的条件匹配的操作,您可以:
concat_data = pd.DataFrame(data=['5.3','5.3%','5.3%APR'],columns=['% interest'])
for row in concat_data.index:
if '%' in concat_data['% interest'][row]:
concat_data['% interest'][row] = concat_data['% interest'][row].split('%')
这正确地使用了“if”语句,因为它一次仅对一个值进行操作。
或者您可以使用列表理解更新列:
concat_data['% interest'] = [x.split('%') if '%' in x else x for x in concat_data['% interest']]
添加回答
举报