通过字符串开头的子字符串匹配过滤 Pandas DataFrame [重复]

问题描述 投票:0回答:1

尝试过滤掉特定列的数据以给定子字符串开头的行。

我有一个

pandas.DataFrame
,如下所示(简化):

价格 药物代码
123 A12D958
234 B564F3C
... ...

我正在尝试过滤掉

DRUG_CODE
not 以子字符串
B21
开头的行。然而,我在网上找到的大多数关于使用子字符串过滤 DataFrame 的文章都侧重于识别那些包含子字符串,允许它出现在单元格内的任何位置(开头、中间或结尾)(例如:
.str.contains()
方法) )。这不符合我目前的要求。

python pandas dataframe data-preprocessing
1个回答
0
投票

您可以简单地这样做:

import pandas as pd

data = {
    'price': [123, 234, 345],
    'DRUG_CODE': ['A12D958', 'B564F3C', 'B21X456']
}

df = pd.DataFrame(data)

filtered_df = df[~df['DRUG_CODE'].str.startswith('B21')]

print(filtered_df)


filtered_df_with = df[df['DRUG_CODE'].str.startswith('B21')]

print(filtered_df_with)

这给出了

   price DRUG_CODE
0    123   A12D958
1    234   B564F3C
   price DRUG_CODE
2    345   B21X456
© www.soinside.com 2019 - 2024. All rights reserved.