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 中列的所有空白。
讓我知道它是否有效:)
添加回答
舉報