尝试过滤掉特定列的数据以给定子字符串开头的行。
我有一个
pandas.DataFrame
,如下所示(简化):
价格 | 药物代码 |
---|---|
123 | A12D958 |
234 | B564F3C |
... | ... |
我正在尝试过滤掉
DRUG_CODE
not 以子字符串 B21
开头的行。然而,我在网上找到的大多数关于使用子字符串过滤 DataFrame 的文章都侧重于识别那些包含子字符串,允许它出现在单元格内的任何位置(开头、中间或结尾)(例如:.str.contains()
方法) )。这不符合我目前的要求。
您可以简单地这样做:
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