我想在pandas df
中的几列上应用一个函数,但是我一直得到下面的错误。
TypeError: expected string or bytes-like object
这是我使用的代码:
unret = lambda v: float(re.sub("[^\d\.]", "", v))
object_list = ['GDP (Billions, PPP)','GDP per Capita (PPP)','FDI Inflow (Millions)']
df[object_list] = df[object_list].apply(unret)
基本上将“$xxx,xxx”(x是一个数字)形式的对象转换为浮点型。
我尝试通过应用.astype(str)
、.astype("string")
、.astype("|S)
将列从对象转换为字符串,但仍然不断出现错误。
1条答案
按热度按时间k2fxgqgv1#
re
不能直接应用于列表,需要逐项应用。此答案作为问题Pandas,TypeError的edit发布:CC BY-SA 4.0下的OP bboyenergetic预期字符串或类似字节的对象。