访问熊猫系列中的字符串

问题描述

我有一个csv表,其中的列(标签)充满了字符串列表。要将其转换为我使用的pd系列

 def flatten(series):
  return pd.Series(series.dropna().sum())

tags_sorted = flatten(df['tags'])

现在,我想在序列中搜索列表之一中的字符串,以便它返回该字符串在列中出现的次数。我发现了这个功能

def find(series,tag):
  for i in series.index:
    if series[i] == tag: 
        return i
return None

并将其用于我的系列:

 print(find(tags_sorted,'romance'))

,但是即使该字符串肯定在多个列表中,它也会继续返回None

我也尝试过

print(tags_sorted[tags_sorted == "romance"])

print(tags_sorted.loc[tags_sorted == 'romance'])

但那些仅返回[]

解决方法

我相信您需要将find函数更改为:

def find(series,tag):
    times_occurred = 0

    for i in series.index:
        if series[i] == tag:
            times_occurred += 1

    return times_occurred

,如果要查找特定字符串出现了多少次。