错误强制不将 pandas 中不需要的字符串更改为 NaN

我有一个数据集,其中包含不需要的字符串(这表明无法进行测量)。当 pandas 读取数据的文本文件时,我想将这些不需要的字符串更改为“NaN”,因为字符串的存在会将原本 int 列的数据类型转换为字符串。如果有更好的流程,请告诉我。

代码


import pandas as pd 

data = {

    'ID': [1,2,3,4],

    'V': [6.6,2.01,'tND - 7777',7.01],

    'A': [33,31,'tND - 88881',35]    

    } 

df = pd.DataFrame(data, columns = ['ID','V','A'])


print(df)

df.astype({"V": int})

print(df)

# returns ValueError: invalid literal for int() with base 10: 'tND - 7777'


pd.to_numeric(df['V'], errors = 'coerce')

pd.to_numeric(df['A'], errors = 'coerce')

print(df)

# returns original array, unwanted strings still in place

不需要的字符串


'tND - 7777','tND - 88881'

期望的结果 数据帧列中的数据是整数(我假设 NaN 被视为整数,我只需要在字符串不再存在时绘制数据)。


一只萌萌小番薯
浏览 106回答 1
1回答

富国沪深

分配回输出:df['V'] = pd.to_numeric(df['V'], errors = 'coerce') df['A'] = pd.to_numeric(df['A'], errors = 'coerce')另一个想法是使用:df[['V','A']] = df[['V','A']].apply(pd.to_numeric, errors = 'coerce')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python