在 Pandas 中将带有 NaN 的字符串转换为 int

Tin*_*ang 5 python pandas

我有一个熊猫数据框,所有的值都是字符串。有些是“无”,其余是整数但采用字符串格式,例如“123456”。如何将所有“无”转换为 np.nan,将其他转换为整数,例如 123456。

df = {'col1': ['1', 'None'], 'col2': ['None', '123']}
Run Code Online (Sandbox Code Playgroud)

将 df 转换为:

df = {'col1': [1, NaN], 'col2': [NaN, 123]}
Run Code Online (Sandbox Code Playgroud)

U10*_*ard 5

使用以下代码:

print(df.replace('None', np.nan).astype(float))
Run Code Online (Sandbox Code Playgroud)

输出:

   col1   col2
0   1.0    NaN
1   NaN  123.0
Run Code Online (Sandbox Code Playgroud)

你必须使用replace.

PS如果df是字典,先转换一下:

df = pd.DataFrame(df)
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,但是整数字符串呢?它们会自动转换为浮点数吗? (2认同)