为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

达令说 2023-08-15 18:38:22
令人惊讶的是找不到一个简单的答案。我的数据框中有两列。第 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']


查看完整回答
反对 回复 2023-08-15
?
慕村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


查看完整回答
反对 回复 2023-08-15
  • 2 回答
  • 0 关注
  • 99 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信