Pandas,类型错误:应为字符串或类似字节的对象

rekjcdws  于 2023-02-02  发布在  其他
关注(0)|答案(1)|浏览(147)

我想在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)将列从对象转换为字符串,但仍然不断出现错误。

k2fxgqgv

k2fxgqgv1#

re不能直接应用于列表,需要逐项应用。

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].astype("string")

for v in object_list:
    df[v] = [unret(i) for i in df[v]]

此答案作为问题Pandas,TypeError的edit发布:CC BY-SA 4.0下的OP bboyenergetic预期字符串或类似字节的对象。

相关问题