4 回答

TA貢獻1796條經(jīng)驗 獲得超4個贊
只是這樣應(yīng)該做:
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條經(jīng)驗 獲得超4個贊
看起來您想使用數(shù)字而不是字符串。
因此,替換' '
和''
使用pd.to_numeric
似乎是一種簡單而可靠的方法。
讓我建議另一種可能好也可能不好的方法(這取決于您的數(shù)據(jù)集)。
如果數(shù)據(jù)集中的數(shù)千個數(shù)據(jù)由空格 ( ' '
) 分隔,您可以將df
其讀取為
df = pd.read_csv(file, thousands = ' ')
并且您的所有列都74 109
將被讀取為74109
整數(shù)dtype
或浮點數(shù)。

TA貢獻1835條經(jīng)驗 獲得超7個贊
import re df['gdp_per_capita'] = df['gdp_per_capita'].apply(lambda x: re.sub("[^0-9]", "", str(x))).astype(int)

TA貢獻2041條經(jīng)驗 獲得超4個贊
我不太確定它是否有效,但請嘗試以下操作:
修剪 pandas 中列的前導(dǎo)空格 – lstrip()
修剪 pandas 中列的尾隨空格 – rstrip()
修剪 pandas 中列的前導(dǎo)和尾隨空格 – strip()
去除 pandas 中列的所有空白。
讓我知道它是否有效:)
添加回答
舉報