我有一个数据框,其中一部分显示如下:
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^blog/(.*)$ news/$1 [R=301,L]
该列包含NaN作为字符串/对象。我怎样才能将它转换为numpy nan。当我读入csv文件时,Best能够这样做。
答案 0 :(得分:1)
假设我们有:
>>> df=pd.DataFrame({'col':['NaN']*10})
您可以使用.apply
转换:
>>> new_df=df.apply(float, axis=1)
>>> type(new_df[0])
<type 'numpy.float64'>
答案 1 :(得分:1)
是的,您可以在阅读csv文件时执行此操作。
df = pd.read_csv('test.csv', names=['t', 'v'], dtype={'v':np.float64})
查看pandas.read_csv的文档。有些参数对您的应用程序很有用:
希望这会有所帮助。
答案 2 :(得分:1)
我使用converters
中的read_csv
选项。在这种情况下,我们的目标是将相关列转换为数值,并将其他所有内容视为numpy.nan
,其中包含字符串版本'NaN'
converter = lambda x: pd.to_numeric(x, 'coerce')
df = pd.read_csv(StringIO(txt), delim_whitespace=True, converters={1: converter}, header=None)
df
df.dtypes
0 object
1 float64
dtype: object
答案 3 :(得分:1)
df[var_name_replace] = df[var_name].replace('NaN', np.nan)