当前位置: 首页 > 知识库问答 >
问题:

Python Pandas Dataframe基于包含字符[重复]的列删除行

祁刚毅
2023-03-14

我有一个数据框和大多数列'arr'有一个日期正确格式化为

yyyy-mm-dd

几张坏唱片都有问题

/

比如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'

我的方向对吗?

共有1个答案

令狐良骏
2023-03-14

IIUC

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

例如

df = pd.DataFrame()
df['dates'] = ['2011-01-20', '2011-01-20', '2011/01/20', '2011-01-20']

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

然后

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

但是请注意,如果x中的“/”为真,则为假,否则为真。这与x中的just而不是'/'相同

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

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

 类似资料:
  • 如何消除罗恩说了一句我不想说的话?我有这个数据框: 我正试图删除带有“esponja”字样的rown 我想要这样的数据帧: 我是新手,我不知道如何解决这个问题

  • 问题内容: 在我们的系统中,我们每小时从外部数据库导入一次。由于导入脚本中的错误,现在有一些重复的记录。 如果任何记录具有和,则视为重复。 我可以运行什么代码来查找和删除这些重复项? 我在玩这个: 它似乎返回了一些重复项,但是我不确定如何从那里删除? 有任何想法吗? 问题答案: 您可以尝试以下方法: 还是纯sql:

  • 我当前的代码只删除具有“未分配”确切值的值,而我希望它删除任何包含“未分配”的值。 这是我的密码 我希望从中删除任何“未分配”值的列称为taxon。 谢谢!

  • 问题内容: 我使用以下方式列出了重复项: 现在,如何删除除一条消息以外的所有消息(我正在尝试删除重复项,以便可以在上应用唯一索引)。 问题答案: 使用和分配行号,以便删除重复对中除一个以外的所有行。

  • 问题内容: 我在存储的过程中有一个字符串,类似于或 从上面的字符串中,我必须从中删除多个逗号,它必须看起来像 或仅在 then时 。我必须仅使用Sql Server函数。我正在使用Sql Server 2008和.Net 3.5 提前致谢。 问题答案: 该选项适用于仅使用逗号或最多398个连续逗号的字符串。 如果需要更多,在顶部添加额外的2的幂,或者如果需要较少,则从顶部删除2的幂。每个阶段的注释

  • 我正在尝试删除此df中的所有行,其中“DB Serial”列包含字符*: 我正在使用: 但我得到这个错误: