熊猫取代了类型问题

时间:2016-06-06 20:54:15

标签: python pandas

我有一个pandas数据框,其中一行包含以下数据:

1 year
1 month
1 week
4 year
3 week

等等

我正在尝试将包含“month”或“week”的任何内容替换为0

train_df.age["weeks" in train_df.age] = 0

for i in train_df['age']:
    if "weeks" in i:
        i = "0"

这些似乎都不起作用。

关于如何做到这一点的任何建议? 感谢。

1 个答案:

答案 0 :(得分:1)

使用str.contains

train_df.loc[train_df['age'].str.contains(r'week|month'), 'age'] = 0

在这里,我们传递一个正则表达式模式,该模式查找该行是否包含“周”和“周”。或者'月'并使用布尔掩码有选择地仅更新感兴趣的行:

In [4]:
df.loc[df['age'].str.contains(r'week|month'), 'age'] = 0
df

Out[4]:
    age
1  year
1     0
1     0
4  year
3     0