Python Pandas数据帧根据包含ch的列删除行

2024-10-04 05:25:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个dataframe,并且大多数列'arr'的日期格式正确为

yyyy-mm-dd

一些不良记录

^{pr2}$

比如2019/02/10,我想放弃它们。在

我试过了:

ttdf = ttdf[ttdf['arr'].map(lambda x: 0 if '/' in x else 1 ) ]

但我收到一条错误信息:

KeyError: '[1 1 1 ... 0 0 0] not in index'

我走对了吗?在


Tags: lambdainmapdataframeif格式记录else
1条回答
网友
1楼 · 发布于 2024-10-04 05:25:37

IIUC公司

df[~df.dates.atype(str).str.contains('/')]

例如

^{pr2}$

那么

df[~df.dates.str.contains('/')]

    dates
0   2011-01-20
1   2011-01-20
3   2011-01-20

您也可以使用map(正如您所尝试的那样),但是使用bool值而不是int,这样您就可以执行布尔掩码

df[df['dates'].map(lambda x: False if '/' in x else True )]

    dates
0   2011-01-20
1   2011-01-20
3   2011-01-20

但是请注意,False if '/' in x else True是多余的。这与not '/' in x相同

df[df['dates'].map(lambda x: not '/' in x )]

    dates
0   2011-01-20
1   2011-01-20
3   2011-01-20

相关问题 更多 >