令人惊讶的是找不到一个简单的答案。
我在数据框中有两列。列1为int64
。
Column1 Column2
19970101 400
19970102 300
19980101 200
如何在1997
中删除具有Column1
模式的行?我相信它不是字符串,因此正则表达式将不起作用。
我想我可以将其分为两部分并删除所有行,只是分别拥有1997
,然后再次合并,但是找到一个更简单的解决方案将非常有用。
谢谢!
答案 0 :(得分:3)
嗯:
df[df['Column1']//10000 != 1997]
或将其转换为字符串:
df[df['Column1'].astype(str).str[:4] != '1997']
答案 1 :(得分:2)
然后转换为str
df[~df['Column1'].astype(str).str.startswith('1997')]
Out[49]:
Column1 Column2
2 19980101 200
当我们使用日期时间对象时,我们总是可以to_datetime
df[pd.to_datetime(df.Column1,format='%Y%m%d').dt.year!=1997]
Out[52]:
Column1 Column2
2 19980101 200