gpt4 book ai didi

python - 将带有空格的数据帧转换为数字、障碍物 - 空格(例如 3 014.0 即 '3\xa0014.0' )

转载 作者:行者123 更新时间:2023-12-01 02:32:21 25 4
gpt4 key购买 nike

我有一个数据框,其中存储的不是预期的数值“Object”类型的数据看起来像 3 014.0,即“3\xa0014.0”,而不是 3014.0 - 空格(即“\xa0”) - 造成转换问题

问题:有什么方法可以将其转换为数字吗?

奇怪的事情:看来我可以对单个元素进行转换:

 float( df.iloc[0,0].replace('\xa0', '') ) # - works

但这不适用于整个系列

df['p1'].astype('str').replace('\xa0','') # does nothing

-- 不执行任何操作

我尝试过:

  1. pd.to_numeric - 给出:无法解析字符串
  2. 尝试转换为字符串,然后使用替换:

df['p1'].astype('str').replace('\xa0','')什么也不做

数据示例:

df.iloc[0:3,0]

2017-10-10 11:32:49.895023    3 014.0
2017-10-10 11:33:11.612169 3 013.5
2017-10-10 11:33:22.488124 3 013.0
Name: p1, dtype: object

df.iloc[0:3,0]:

'3\xa0014.0'

最佳答案

改用这个:df['p1'] = df['p1'].apply(lambda x: float(x.replace('\xa0','')))

df.iloc[0,0] 是一个字符串,而 df['p1'] 是一个 pandas 系列。与字符串和 with a series 关联的 replace 方法是不同的。当您对一个系列调用替换时,pandas 将尝试替换元素。

例如,

df = pd.DataFrame({'name': 'alexander'})`
df['name'].replace('a', 'x') #什么也不做`
df['name'].replace('alexander', 'x') #用 x 替换名字 alexander

df['p1'].apply(lambda x: float(x.replace('\xa0',''))) 将替换方法应用于每个元素(恰好是一个字符串)位于 p1 列中。您可以阅读有关该方法的更多信息 here .

希望这能让事情变得更清楚:)

关于python - 将带有空格的数据帧转换为数字、障碍物 - 空格(例如 3 014.0 即 '3\xa0014.0' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46663994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com