[英]Replace non-numeric column values to float using pandas
首先,您应该阅读您的 csv 文件,其中header=None
, skipinitialspace=True
和quoting=1
作为 read_csv 的read_csv
因为您的 Z099FB995346F31C749F6E40在每个字段分隔符后都有一些正常值,您在每个字段分隔符后都有一些值,看起来像正常的 DB0F395E3Z引号。
要转换最后一列,请使用pd.numeric
:
df = pd.read_csv('tubedata.csv', header=None, quoting=1, skipinitialspace=True)
df[5] = pd.to_numeric(df[5], errors='coerce').fillna(0)
Output:
# Before conversion
>>> df[5].unique()
array(['0', '3', '2', '4', '6', 'a'], dtype=object)
# After conversion
>>> df[5].unique()
array([0., 3., 2., 4., 6.])
您可以通过将pd.to_numeric
映射到DataFrame
来将其应用于每一列。 使用errors='coerce'
将无法转换为NaN
的列转换为可以在以下步骤中轻松删除它们:
df.apply(pd.to_numeric, errors='coerce').dropna(axis=1)
要允许在其他数字列中出现错误值(例如"a"
),请改用fillna
:
pd.to_numeric(df['some column'], errors='coerce').fillna(0.0)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.