在Python中检查并打印数据集中字符串数组的出现次数

时间:2018-02-03 13:44:14

标签: data-analysis data-science

我想检查数据集中是否出现字符串数组,并打印字符串数组元素出现的那些行。

rareTitles = {"Capt", "Col", "Countess", "Don", "Dr", "Jonkheer", "Lady", 
              "Major", "Mlle", "Mme", "Ms", "Rev", "Sir"}         
 dataset[rareTitles in (dataset['Title'])]

我收到以下错误:

  

TypeError:不可用类型:'set'

1 个答案:

答案 0 :(得分:0)

首先,我认为比较应该反过来 - 你找一个dataset['Title'],其中包含来自rareTitles的字符串。

您可以使用pandas DataSeries的str属性,它允许使用字符串方法,如contains。由于此方法也接受模式作为正则表达式,因此您可以将“Capt | Col ...”作为参数。要加入集合中的所有元素,您可以使用str.join()方法。

所以解决方案就是

dataset[dataset['Title'].str.contains('|'.join(rareTitles))]

文档链接:pandas.Series.str.contains