4 回答
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
TA贡献1946条经验 获得超4个赞
看起来您想使用数字而不是字符串。
因此,替换' '
和''
使用pd.to_numeric
似乎是一种简单而可靠的方法。
让我建议另一种可能好也可能不好的方法(这取决于您的数据集)。
如果数据集中的数千个数据由空格 ( ' '
) 分隔,您可以将df
其读取为
df = pd.read_csv(file, thousands = ' ')
并且您的所有列都74 109
将被读取为74109
整数dtype
或浮点数。
TA贡献1835条经验 获得超7个赞
import re df['gdp_per_capita'] = df['gdp_per_capita'].apply(lambda x: re.sub("[^0-9]", "", str(x))).astype(int)
TA贡献2041条经验 获得超4个赞
我不太确定它是否有效,但请尝试以下操作:
修剪 pandas 中列的前导空格 – lstrip()
修剪 pandas 中列的尾随空格 – rstrip()
修剪 pandas 中列的前导和尾随空格 – strip()
去除 pandas 中列的所有空白。
让我知道它是否有效:)
添加回答
举报