如何根据条件将特定行/列中的值更改为 NaN?

问题描述 投票:0回答:1

我的数据集的日期列中有一些奇怪的值。我正在尝试将这些意外值更改为 NaN。

我不知道这些意想不到的值会是什么,因此我制作 df 2 的原因——我在其中搜索了几个月(例如,12 月、3 月),然后删除这些值,然后查看剩下的内容。所以现在我知道奇怪的数据在第 1 行和第 3 行。但是我现在如何将第 1 行和第 3 行的生日列值更改为 NaN?

我的真实数据集要大得多,所以手动输入行号有点尴尬。

#Creating the example df
import pandas as pd
data = {'Age': [20, 21, 19, 18],
        'Name': ['Tom', 'nick', 'krish', 'jack'],
       'Birthday': ["Dec-82", "heidgo", "Mar-84", "ishosdg"]}
df = pd.DataFrame(data)


#Finding out which rows have the weird values 
df2 = df[~df["Birthday"].str.contains("Dec|Mar")]
python nan data-cleaning
1个回答
0
投票

找到符合条件的记录,用

Birthday
填充他们的
NaN
列:

df.loc[~df["Birthday"].str.contains("Dec|Mar"), 'Birthday'] = np.nan

   Age   Name Birthday
0   20    Tom   Dec-82
1   21   nick      NaN
2   19  krish   Mar-84
3   18   jack      NaN
© www.soinside.com 2019 - 2024. All rights reserved.