📌  相关文章
📜  检查一列是否以 Pandas DataFrame 中的给定字符串开头?(1)

📅  最后修改于: 2023-12-03 15:10:51.475000             🧑  作者: Mango

如何检查一列是否以 Pandas DataFrame 中的给定字符串开头?

在 Pandas 中,如果我们需要检查 DataFrame 的某一列是否以给定的字符串开头,我们可以使用 str.startswith() 方法。该方法接受一个字符串参数,如果该列中的字符串以该参数开头,则返回 True,否则返回 False。

import pandas as pd

# 创建示例 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Emma'],
        'Age': [25, 30, 35, 40, 45],
        'City': ['Beijing', 'Shanghai', 'Guangzhou', 'Shenzhen', 'Wuhan']}
df = pd.DataFrame(data)

# 检查 Name 列是否以 'A' 开头
result = df['Name'].str.startswith('A')

print(result)

输出结果:

0     True
1    False
2    False
3    False
4    False
Name: Name, dtype: bool

上面的代码中,我们使用 str.startswith() 方法检查 Name 列是否以 'A' 开头,结果保存在变量 result 中。在输出结果时,我们可以看到第一行的 Name 是以 'A' 开头的,因此对应的值为 True,其余行不是以 'A' 开头,因此对应的值为 False。

除了传入单个字符串参数,str.startswith() 方法还可以传入一个字符串列表,用于检查列中字符串是否以列表中任何一个字符串开头,如果是则返回 True,否则返回 False。

import pandas as pd

# 创建示例 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Emma'],
        'Age': [25, 30, 35, 40, 45],
        'City': ['Beijing', 'Shanghai', 'Guangzhou', 'Shenzhen', 'Wuhan']}
df = pd.DataFrame(data)

# 检查 Name 列是否以 'A' 或 'C' 开头
result = df['Name'].str.startswith(['A', 'C'])

print(result)

输出结果:

0     True
1    False
2     True
3    False
4    False
Name: Name, dtype: bool

上面的代码中,我们传入了一个字符串列表 ['A', 'C'],因此 str.startswith() 方法检查 Name 列是否以 'A' 或 'C' 开头,结果保存在变量 result 中。可以看到第一和第三行的 Name 是以 'A' 或 'C' 开头的,因此对应的值为 True,其余行不是以 'A' 或 'C' 开头,因此对应的值为 False。