pandas 删除含有特定字符串的某一行
在数据处理中,有时候我们需要删除DataFrame中含有特定字符串的某一行数据,这样可以使数据更加干净和规整。在Python中,我们通常使用pandas库来进行数据处理,pandas提供了丰富的方法来操作DataFrame,包括删除特定行数据。在本文中,我们将介绍如何使用pandas删除含有特定字符串的某一行数据。
示例数据
首先,让我们创建一个包含一些示例数据的DataFrame。在这个DataFrame中,我们将包含一些包含”geek-docs.com”的行数据,我们将使用pandas来删除这些行。
import pandas as pd
data = {'A': ['geek-docs.com', 'apple', 'banana', 'geek-docs.com', 'cherry'],
'B': [1, 2, 3, 4, 5],
'C': [6, 7, 8, 9, 10]}
df = pd.DataFrame(data)
print(df)
运行结果:
A B C
0 geek-docs.com 1 6
1 apple 2 7
2 banana 3 8
3 geek-docs.com 4 9
4 cherry 5 10
在以上示例数据中,我们的DataFrame包含5行数据,其中有两行包含了字符串”geek-docs.com”。接下来,我们将使用pandas删除这两行数据。
删除含有特定字符串的某一行
我们可以使用pandas的str.contains
方法来判断DataFrame中的某一列是否包含特定字符串,然后使用~
符号取反,将不包含特定字符串的行筛选出来。接着,我们可以使用drop
方法来删除这些行。
# 删除包含"geek-docs.com"的行
df = df[~df['A'].str.contains('geek-docs.com')]
print(df)
运行结果:
A B C
1 apple 2 7
2 banana 3 8
4 cherry 5 10
如上所示,我们成功删除了DataFrame中包含”geek-docs.com”的行数据。使用str.contains
方法可以方便地判断某一列是否包含特定字符串,结合~
符号可以取反,选取不包含特定字符串的行。
删除多个特定字符串的行
如果我们需要删除包含多个特定字符串的行数据,我们可以使用str.contains
方法传入一个正则表达式。以下示例代码将同时删除包含”geek-docs.com”和”apple”的行数据。
# 删除包含"geek-docs.com"和"apple"的行
df = df[~df['A'].str.contains('geek-docs.com|apple')]
print(df)
运行结果:
A B C
2 banana 3 8
4 cherry 5 10
如上所示,我们成功删除了DataFrame中包含”geek-docs.com”和”apple”的行数据。通过传入正则表达式,我们可以一次性删除多个特定字符串的行数据。
总结
在本文中,我们介绍了如何使用pandas删除DataFrame中含有特定字符串的某一行数据。我们通过示例数据演示了如何使用str.contains
方法和~
符号来实现,同时也介绍了如何删除包含多个特定字符串的行数据。