3 回答

TA貢獻1725條經驗 獲得超8個贊
我認為您根本不需要使用 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']]
添加回答
舉報