转换为字符串后如何保留空值?我正在处理社会安全号码,需要在浮点数和字符串之间来回切换。
import pandas as pd
import numpy as np
x = pd.Series([np.nan, 123., np.nan, 456.], dtype = float)
x.isnull()
...有空值
y = x.astype(str)
y.isnull()
...没有空值
所以理想情况下 x.isnull() 和 y.isnull() 应该是相同的。
我认为使用一系列混合数据类型是危险的,但认为这是目前最好的解决方案:
z = y.copy()
z[z == 'nan'] = np.nan
z.isnull() # works as desired
type(z[0]) # but has floats for nulls
type(z[1]) # and strings for values
我也遇到了这个问题,但是对于DataFrames。对 pandas Series 和 DataFrame 都有效的方法是使用 mask():
data = pd.Series([np.NaN, 10, 30, np.NaN]) # Also works for pd.DataFrame
null_cells = data.isnull()
data = data.astype(str).mask(null_cells, np.NaN)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)