我知道这里有很多类似的问题。但似乎没有一个答案对我有用。请注意,我是一名初学者程序员,只是通过 Youtube 教程才学到这一点。请注意,我使用的是 Mac 操作系统和 PyCharm
我的程序下载this .csv通过我在 Youtube 上找到的这段代码进行文件
def download_data(csv_url):
response = request.urlopen(csv_url)
csv = response.read()
csv_str = str(csv)
lines = csv_str.split ("\\n")
dest_url = r'NO_AM1H.csv'
fx = open(dest_url,"w")
for line in lines:
fx.write (line + "\n")
fx.close()
然后我读取 .csv 并设置分隔符。 .csv 中的许多值都 <7 或为空 (NaN)。我尝试替换它们,如图所示,但是当我打印数据帧(df)时,它仍然显示 NaN 和 <7
df = pd.read_csv('NO_AM1H.csv',delimiter=';')
df = df.replace(np.nan,0)
df = df.replace('<7',0)
print(df.tail(4))
任何帮助将不胜感激,并对任何菜鸟错误表示歉意。谢谢
最佳答案
您可以做的快速修复是在读取 csv 时标记可能的 NA 值,如下所示:
方法一:
df = pd.read_csv('NO_AM1H.csv',delimiter=';', na_values=['<7', 'NaN','nan', None])
# then fill the NAs
df = df.fillna(0)
方法2:
df = df.applymap(lambda x: None if x == '<7' else x)
替换 pandas 中的 float NA 的解决方法是:
df = df.applymap(lambda x: 0 if str(x) == 'nan' else x)
关于python - df.fillna 或 df.replace 没有消除我的 .csv 文件中的 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59813237/