2024-10-03 02:37:00 发布
网友
在下面的数据框中:
T2MN T2MX RH2M DFP2M RAIN 6.96 9.32 84.27 5.57 - 6.31 10.46 - 5.63 - - 10.66 79.38 3.63 - 0.79 4.45 94.24 1.85 - 1.45 3.99 91.71 1.17 -
如何用NaN替换所有的-。我不想指定列名,因为我之前不知道哪个列将有-
-
如果这些是字符串,那么您的浮动也可能是字符串。在
假设你的数据帧是df,我会试试
df
pd.to_numeric(df.stack(), 'coerce').unstack()
更深入的解释
Pandas通常不会用'-'表示丢失的浮点。因此,'-'必须是字符串。因此,任何包含'-'的列的dtype必须是'object'。这使得无论解析数据的是什么,都很有可能将浮点数保留为字符串。在
'-'
dtype
'object'
设置
什么是dtypes?在
dtypes
print(df.dtypes) T2MN object T2MX float64 RH2M object DFP2M float64 RAIN object dtype: object
第一个元素的类型是什么?在
print(type(df.iloc[0, 0])) <class 'str'>
这意味着任何带有'-'的列都像一列看起来像浮动的字符串。您想使用pd.to_numeric和参数errors='coerce'来强制非数字项np.nan。但是,pd.to_numeric不在pd.DataFrame上操作,所以我们stack和{}。在
pd.to_numeric
errors='coerce'
np.nan
pd.DataFrame
stack
pd.to_numeric(df.stack(), 'coerce').unstack() T2MN T2MX RH2M DFP2M RAIN 0 6.96 9.32 84.27 5.57 NaN 1 6.31 10.46 NaN 5.63 NaN 2 NaN 10.66 79.38 3.63 NaN 3 0.79 4.45 94.24 1.85 NaN 4 1.45 3.99 91.71 1.17 NaN
只要replace()字符串:
replace()
In [10]: df.replace('-', 'NaN') Out[10]: T2MN T2MX RH2M DFP2M RAIN 0 6.96 9.32 84.27 5.57 NaN 1 6.31 10.46 NaN 5.63 NaN 2 NaN 10.66 79.38 3.63 NaN 3 0.79 4.45 94.24 1.85 NaN 4 1.45 3.99 91.71 1.17 NaN
我认为您需要实际的numpy.nan而不是字符串NaN,因为您可以在pandas.Series/isnull/notnull}上使用很多方法,比如pandas.Series/pandas.DataFrame
numpy.nan
NaN
pandas.Series
isnull
notnull
pandas.DataFrame
import pandas as pd import numpy as np df = pd.DataFrame([['-']*10]*10) df = df.replace('-',np.nan)
如果这些是字符串,那么您的浮动也可能是字符串。在
假设你的数据帧是
df
,我会试试更深入的解释
Pandas通常不会用
'-'
表示丢失的浮点。因此,'-'
必须是字符串。因此,任何包含'-'
的列的dtype
必须是'object'
。这使得无论解析数据的是什么,都很有可能将浮点数保留为字符串。在设置
^{pr2}$什么是
dtypes
?在第一个元素的类型是什么?在
这意味着任何带有}。在
'-'
的列都像一列看起来像浮动的字符串。您想使用pd.to_numeric
和参数errors='coerce'
来强制非数字项np.nan
。但是,pd.to_numeric
不在pd.DataFrame
上操作,所以我们stack
和{只要
replace()
字符串:我认为您需要实际的
numpy.nan
而不是字符串NaN
,因为您可以在pandas.Series
/isnull
/notnull
}上使用很多方法,比如pandas.Series
/pandas.DataFrame
相关问题 更多 >
编程相关推荐