Pandas:如何选择不以字符串开头的行


您可以使用以下基本语法来选择 pandas DataFrame 中不以特定字符串开头的行:

 df[~df. my_column . str . startswith ((' this ', ' that '))]

此特定公式选择 DataFrame 中名为my_column的列不以字符串this或字符串that开头的所有行。

以下示例展示了如何在实践中使用此语法。

示例:选择 Pandas 中不以字符串开头的行

假设我们有以下 pandas DataFrame,其中包含各个商店的销售信息:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' store ': ['Upper East', 'Upper West', 'Lower East', 'West', 'CTR'],
                   ' sales ': [150, 224, 250, 198, 177]})

#view DataFrame
print (df)

        blind sales
0 Upper East 150
1 Upper West 224
2 Lower East 250
3 West 198
4 CTR 177     

我们可以使用以下语法来选择 DataFrame 中存储列中不以“Upper”或“Lower”字符串开头的所有行:

 #select all rows where store does not start with 'Upper' or 'Lower'
df[~df. blind . str . startswith ((' Upper ',' Lower '))]

	blind sales
3 West 198
4 CTR 177

请注意,返回的唯一行是存储列不以“Upper”或“Lower”开头的行。

如果需要,您还可以在startupswith()函数之外定义字符串元组:

 #define tuple of strings
some_strings = (' Upper ', ' Lower ')

#select all rows where store does not start with strings in tuple
df[~df. blind . str . startswith (some_strings)]

	blind sales
3 West 198
4 CTR 177

这会产生与先前方法相同的结果。

注意:您可以在此处找到 pandas 中startwith函数的完整文档。

其他资源

以下教程解释了如何在 pandas 中执行其他常见任务:

Pandas:如何根据字符串长度过滤行
Pandas:如何检查列是否包含字符串
Pandas:如何使用 GroupBy 连接字符串

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注