首页 > 解决方案 > python - 当其他列等于某些值时,csvfile用NaN替换列值

问题描述

对不起,如果标题有点长而且很奇怪......

我有以下 csv 文件:

Date,Value1,Value2
01-01-01,01,01
02-01-01,02,00
03-01-01,03,01
04-01-01,04,01

在这个数据集中,当列的数据相等时,我想Value1用 a 替换列的数据。NaNValue200

所以输出数据集应该是这样的:

Date,Value1,Value2
01-01-01,01,01
02-01-01,NaN,00
03-01-01,03,01
04-01-01,04,01

我尝试使用以下代码,但我缺少一些条件,它显然不起作用:

data = pd.read_csv("test.csv")
data['Value1'][data.Value2 == 00] = np.NaN

有谁知道如何实现这一目标?

标签: pythoncsvnan

解决方案


import pandas as pd
import numpy as np
df=pd.read_csv('C:/Users/your_csv.csv')
df.loc[df['Value2'] == 0,'Value1']=np.nan

输出

        Date     Value1 Value2
    0   1/1/2001    1.0 1
    1   2/1/2001    NaN 0
    2   3/1/2001    3.0 1
    3   4/1/2001    4.0 1

推荐阅读