包含字符串一部分的数组中的IEM数

2024-10-06 16:21:05 发布

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

考虑

df['something'].unique()

这会在变量中生成唯一的项。让我们将其视为一组独特的项目。

array(['aabb','aacc','aadd','bbcc']).

现在我想检查该数组中的任何项如何从“aa”开始


Tags: 项目df数组arraysomethingaauniqueaabb
3条回答

您可以使用函数startswith()。因此,守则将是:

number_of_aa = len([x for x in df['something'].unique() if x.startswith('aa')])

使用此方法可以获得一个筛选列表,其中的值以aa开头,然后使用len可以获得计数。如果不希望保留这些值,只需使用True/False,然后对这些值求和:

number_of_aa = [True for x in df['something'].unique() if x.startswith('aa')].sum()

您可以使用re模块查找任何模式(不仅仅是“aa”)

例如: 如果您有以下数组arr = ['aabb','aacc','aadd','bbcc'],您可以在这行代码中找到以“aa”开头的元素数:

len([word for word in arr if re.match(r'aa', word)])

这将为您提供3的输出,而此行

len([word for word in arr if re.match(r'bb', word)])

将显示1

对于计数True^{}sum的解决方案:

print (pd.Series(df['something'].unique()).str.startswith('aa').sum())
3

备选方案是^{}-那么Series构造函数是不必要的:

print (df['something'].drop_duplicates().str.startswith('aa').sum())
3

或纯python解决方案生成器,带有sumstartswith用于计数True

print (sum(x.startswith('aa') for x in df['something'].unique()))
3

相关问题 更多 >