在 pandas 中删除包含特定数字模式 (int64) 的行

令人惊讶的是找不到一个简单的答案。


我的数据框中有两列。第 1 列是int64.


Column1  Column2

19970101  400

19970102  300

19980101  200

如何删除带有1997模式的行Column1?我相信它不是一个字符串,所以正则表达式不起作用。


我想我可以将它分成两部分并删除所有行,只需分开1997,然后再次组合,但如果能找到一个更简单的解决方案就太好了。


达令说
浏览 100回答 2
2回答

HUX布斯

出色地:df[df['Column1']//10000 != 1997]或者将其转换为字符串:df[df['Column1'].astype(str).str[:4] != '1997']

慕村225694

然后转换为strdf[~df['Column1'].astype(str).str.startswith('1997')]Out[49]:     Column1  Column22  19980101      200当我们使用 datetime 对象时,我们总是可以这样做to_datetimedf[pd.to_datetime(df.Column1,format='%Y%m%d').dt.year!=1997]Out[52]:     Column1  Column22  19980101      200
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python