我的数据集的日期列中有一些奇怪的值。我正在尝试将这些意外值更改为 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")]
找到符合条件的记录,用
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