【发布时间】:2017-08-20 18:08:22
【问题描述】:
对于以下 df(请注意,我正在使用的 df 是从 txt 文件导入的原始数据中读取的,而不是在此示例中在 python 中创建的以下 df)
import pandas as pd
df = pd.DataFrame({'ID': ['12374' ,'19352','21014','2619','2621','9566','9686','61319','68086','69239','69353', '69373','69491','69535','69582','69691','174572','174637','174646','175286','175390'],
'Category': [' ', ' ', ' ', '???? ?????','? ?',' ','?? ?',' ',' ',' ','?? ?',' ','? ?','???? ????? ??? ','? ?','?? ?','A','A','B','B','C']})
我正在尝试标记,用户将类别表示为问号。它确实有效,它用问号标记了所有行的标志。但它也会将 Y 标志添加到该列中的空白行。
df['?_Flag'] = np.where(df['Category'].str.contains("\?"), 'Y', '')
我需要改用 match 吗?
这是我得到的数据框:
ID Category ?_Flag
12374 Y
19352 Y
21014 Y
2619 ???? ????? Y
2621 ? ? Y
9566 Y
9686 ?? ? Y
61319 Y
68086 Y
69239 Y
69353 ?? ? Y
69373 Y
69491 ? ? Y
69535 ???? ????? ??? Y
69582 ? ? Y
69691 ?? ? Y
174572 A
174637 A
174646 B
175286 B
175390 C
可能与数据类型有关吗?
df.info()
First_Name_E 197357 non-null object
【问题讨论】:
-
请阅读this 以提供可重现的示例。
-
第二个@juanpa.arrivillaga 的评论。我不明白为什么你的答案不能按原样工作。我们需要查看可以重现问题的示例数据。
-
还要补充一点,这个人似乎没有在他们自己的项目上投入太多精力,因为他们在过去约 2 小时内就这个 df 提出了 5 个问题。我们很乐意为您提供帮助,但不会为您完成全部任务,您打算如何学习?
-
@DmitryPolonskiy;这不是一个富有成效的评论;我承认我对字符串和正则表达式很陌生,如果我有很多基本问题,我很抱歉;但我正在努力尽快学习它,并且在我的项目上做了很多工作,我在过去 2 小时内问了这么多问题的原因是因为我总结了我遇到的所有障碍,我无法做到在 python 文档或以前的 stackoverflow 答案中找到解决方法或解释
-
@jeangelj,我 can't reproduce it...
标签: python string pandas contains