为了账号安全,请及时绑定邮箱和手机立即绑定

无法从 pandas 数据框中删除空格

无法从 pandas 数据框中删除空格

偶然的你 2023-10-25 10:36:30
有这个数据:                              region gdp_per_capita0                      Coasts of USA         71 5461          USA: New York, New Jersey         81 6152                    USA: California         74 2053                   USA: New England         74 000想要得到这个:                              region gdp_per_capita0                      Coasts of USA          715461          USA: New York, New Jersey          816152                    USA: California          742053                   USA: New England          74000尝试使用df.columns = df.columns.str.replace(' ', ''),但没有成功
查看完整描述

4 回答

?
SMILET

TA贡献1796条经验 获得超4个赞

只是这样应该做:


df['gdp_per_capita'] = df['gdp_per_capita'].astype(str).str.replace('\s+', '').replace('nan', np.nan)

df['gdp_per_capita'] = pd.to_numeric(df['gdp_per_capita'])

print(df)


                      region gdp_per_capita

0              Coasts of USA          71546

1  USA: New York, New Jersey          81615

2            USA: California          74205

3           USA: New England          74000


查看完整回答
反对 回复 2023-10-25
?
绝地无双

TA贡献1946条经验 获得超4个赞

看起来您想使用数字而不是字符串。

因此,替换' '''使用pd.to_numeric似乎是一种简单而可靠的方法。

让我建议另一种可能好也可能不好的方法(这取决于您的数据集)。

如果数据集中的数千个数据由空格 ( ' ') 分隔,您可以将df其读取为

df = pd.read_csv(file, thousands = ' ')

并且您的所有列都74 109将被读取为74109整数dtype或浮点数。


查看完整回答
反对 回复 2023-10-25
?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

import re
df['gdp_per_capita'] = df['gdp_per_capita'].apply(lambda x: re.sub("[^0-9]", "", str(x))).astype(int)



查看完整回答
反对 回复 2023-10-25
?
缥缈止盈

TA贡献2041条经验 获得超4个赞

我不太确定它是否有效,但请尝试以下操作:

  1. 修剪 pandas 中列的前导空格 – lstrip()

  2. 修剪 pandas 中列的尾随空格 – rstrip()

  3. 修剪 pandas 中列的前导和尾随空格 – strip()

  4. 去除 pandas 中列的所有空白。

让我知道它是否有效:)


查看完整回答
反对 回复 2023-10-25
  • 4 回答
  • 0 关注
  • 103 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信