令人惊讶的是找不到一个简单的答案。我的数据框中有两列。第 1 列是int64.Column1 Column219970101 40019970102 30019980101 200如何删除带有1997模式的行Column1?我相信它不是一个字符串,所以正则表达式不起作用。我想我可以将它分成两部分并删除所有行,只需分开1997,然后再次组合,但如果能找到一个更简单的解决方案就太好了。
2 回答
HUX布斯
TA贡献1876条经验 获得超6个赞
出色地:
df[df['Column1']//10000 != 1997]
或者将其转换为字符串:
df[df['Column1'].astype(str).str[:4] != '1997']
慕村225694
TA贡献1880条经验 获得超4个赞
然后转换为str
df[~df['Column1'].astype(str).str.startswith('1997')]
Out[49]:
Column1 Column2
2 19980101 200
当我们使用 datetime 对象时,我们总是可以这样做to_datetime
df[pd.to_datetime(df.Column1,format='%Y%m%d').dt.year!=1997]
Out[52]:
Column1 Column2
2 19980101 200
添加回答
举报
0/150
提交
取消