Python - csvfile заменяет значения столбцов на NaN, когда другой столбец равен определенным значениям

steve спросил: 12 мая 2018 в 04:35 в: python

Извините, если заголовок как-то длинный и странный ...

У меня есть следующий файл 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 на NaN, когда данные столбца Value2 равны 00.

So выходной набор данных должен выглядеть следующим образом:

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

Кто-нибудь знает, как это достичь?


1 ответ

Есть решение
mad_ ответил: 12 мая 2018 в 04:45
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