Pandas 检查DataFrame中的列是否以给定的字符串开头/结尾

Pandas 检查DataFrame中的列是否以给定的字符串开头/结尾

Pandas是一个流行的用于数据处理和分析的Python库。它提供了强大的工具来处理结构化数据,如表格或电子表格。Pandas可以处理各种数据格式,包括CSV、Excel、SQL数据库和JSON等。

Pandas的关键特性之一是其两个主要数据结构:Series和DataFrame。

Series是一个类似于一维数组的对象,可以保存任何数据类型,如整数、浮点数、字符串甚至Python对象。Series是带标签的,意味着它们有一个索引用于访问和操作数据。

DataFrame是一个类似于电子表格或SQL表的二维表格状数据结构,有行和列。它可以包含多种数据类型,可以被看作是一组Series。DataFrame非常强大和灵活,可以通过多种方式进行操作,如过滤、合并、分组和转换数据。

Pandas提供了许多用于处理DataFrame的工具,包括索引、选择和过滤数据的方法,以及统计和数学运算。Pandas还包含处理缺失数据、重塑数据和处理时间序列数据的工具。

要创建一个DataFrame,可以将字典或列表的列表传递给DataFrame构造函数。字典中的每个键表示DataFrame中的一列,值表示该列中的数据。另外,还可以从CSV、Excel、SQL数据库或其他数据格式创建DataFrame。

总的来说,Pandas是一个强大而灵活的用于处理Python中的结构化数据的库,其DataFrame数据结构是其最重要的特性之一。凭借其广泛的功能和易用性,Pandas是任何在Python中处理数据的数据科学家或分析师的必备工具。

现在我们详细了解了pandas和pandas DataFrame,让我们稍微谈谈Pandas的endswith()方法。

endswith()

Pandas中的endswith()方法也可以应用于DataFrame,用于检查指定列中的每个元素是否以给定的字符串或字符结尾。该方法返回一个布尔型DataFrame对象,其形状与原始DataFrame相同。

在Pandas中使用endswith()方法与DataFrame的语法如下所示:

DataFrame[column_name].str.endswith(suffix, na=None)

DataFrame是您要应用该方法的DataFrame的名称,column_name是您要检查是否以suffix结尾的列的名称,suffix是您要检查每个元素是否以其结尾的字符串或字符序列,na是可选参数,用于指定如何处理缺失或空值。

为了说明这一点,让我们考虑一个例子,其中我们有一个包含员工信息的数据集,包括’员工ID’,’姓名’,’部门’和’薪水’。

示例

# Importing the pandas library and renaming it as pd
import pandas as pd

# Creating a DataFrame for employees
employee_df = pd.DataFrame({
    'Employee_ID': ['E101', 'E102', 'E103', 'E104', 'E105'],
    'Name': ['John', 'Emily', 'Mark', 'Sarah', 'Jessica'],
    'Department': ['Sales', 'HR', 'IT', 'Marketing', 'Finance'],
    'Salary': [50000, 60000, 75000, 80000, 90000]
})

# Printing the original DataFrame
print("Printing Original Employee DataFrame:")
print(employee_df)

解释

这段代码使用Pandas库从字典创建一个DataFrame。下面是代码的每个部分的作用:

  • import pandas as pd :这行代码导入Pandas库并将其重命名为”pd”,这样我们在代码中可以更方便地引用它。

  • data = {‘name’: [‘John’, ‘Emily’, ‘Mark’, ‘Jessica’], ‘age’: [25, 32, 18, 47], ‘country’: [‘USA’, ‘Canada’, ‘UK’, ‘USA’], ‘gender’: [‘M’, ‘F’, ‘M’, ‘F’]}:这行代码创建一个名为”data”的字典,其中包含”name”、”age”、”country”和”gender”的键。每个键都有一个列表的值,对应于该列的数据。

  • df = pd.DataFrame(data):这行代码从字典”data”创建一个名为”df”的DataFrame。Pandas会自动将字典的键作为DataFrame的列标题,并将每个列表中的值作为相应列的值。

  • print(df) :这行代码将DataFrame打印到控制台。输出的结果将如下所示:

要运行上述代码,我们需要运行下面的命令。

命令

python3 main.py

输出

Printing Original Employee DataFrame:
  Employee_ID     Name Department  Salary
0        E101     John      Sales   50000
1        E102    Emily         HR   60000
2        E103     Mark         IT   75000
3        E104    Sarah  Marketing   80000
4        E105  Jessica    Finance   90000

现在让我们在上面的代码中使用endswith()方法。

在第一个例子中,我们将检查数据帧列Department是否包含’IT’。

考虑下面显示的代码。

示例

# Importing the pandas library and renaming it as pd
import pandas as pd

# Creating a DataFrame for employees
employee_df = pd.DataFrame({
    'Employee_ID': ['E101', 'E102', 'E103', 'E104', 'E105'],
    'Name': ['John', 'Emily', 'Mark', 'Sarah', 'Jessica'],
    'Department': ['Sales', 'HR', 'IT', 'Marketing', 'Finance'],
    'Salary': [50000, 60000, 75000, 80000, 90000]
})

# Printing the original DataFrame
print("Printing Original Employee DataFrame:")
# print(employee_df)

# Applying a lambda function to each value in the "Department" column
# The lambda function uses the `endswith()` string method to check if the string ends with "IT"
# The `map()` function applies the lambda function to each value in the column and returns a list of boolean values
# The list is used to create a new column in the `employee_df` DataFrame
employee_df['TutorialsPoint_Emp'] = list(
    map(lambda x: x.endswith('IT'), employee_df['Department']))

# Printing the new DataFrame with the added column
print(employee_df)

在这个案例中,使用endswith()函数进行条件检查,并根据检查结果创建一个新的列。这是一个用于数据操作和过滤的有用工具,特别适用于处理文本数据。

这段代码的输出将是一个修改过的DataFrame,其中包含一个名为”TutorailsPoint_Emp”的附加列。该列包含布尔值,表示员工是否在IT部门工作(True)或不是(False)。输出将如下所示:

要运行上述代码,我们需要运行下面显示的命令。

命令

python3 main.py

输出

Printing Original Employee DataFrame:
  Employee_ID     Name Department  Salary  TutorialsPoint_Emp
0        E101     John      Sales   50000              False
1        E102    Emily         HR   60000               False
2        E103     Mark         IT   75000                True
3        E104    Sarah  Marketing   80000          False
4        E105  Jessica    Finance   90000          False

现在让我们尝试在另一列上使用endswith()方法。

考虑下面显示的代码。

示例

# Importing the pandas library and renaming it as pd
import pandas as pd

# Creating a DataFrame for employees
employee_df = pd.DataFrame({
    'Employee_ID': ['E101', 'E102', 'E103', 'E104', 'E105'],
    'Name': ['John', 'Emily', 'Mark', 'Sarah', 'Jessica'],
    'Department': ['Sales', 'HR', 'IT', 'Marketing', 'Finance'],
    'Salary': [50000, 60000, 75000, 80000, 90000]
})

# Printing the original DataFrame
print("Printing Original Employee DataFrame:")
# print(employee_df)

# joining new column in dataframe
# endwith function used to check
employee_df['TutorialsPoint_Emp'] = list(
    map(lambda x: x.endswith('Sarah'), employee_df['Name']))

# printing new data frame
print(employee_df)

解释

在上面的代码中,我们使用了map()函数和lambda函数来检查每个员工的姓名是否以字符串”Sarmah”结尾。这是通过使用endswith()方法实现的,该方法返回一个布尔值,指示给定字符串是否以指定的后缀结尾。

然后使用list()函数将生成的布尔值转换为列表,并存储在名为”TutorialsPoint_Emp”的新列中。

最后,使用print()函数打印修改后的DataFrame。输出将显示原始员工信息以及一个新列,指示每个员工的姓名是否以”Sarmah”结尾。

要运行上述代码,我们需要运行下面显示的命令。

命令

python3 main.py

输出

Printing Original Employee DataFrame:
  Employee_ID     Name Department  Salary  TutorialsPoint_Emp
0        E101     John      Sales   50000               False
1        E102    Emily         HR   60000               False
2        E103     Mark         IT   75000               False
3        E104    Sarah  Marketing   80000                True
4        E105  Jessica    Finance   90000               False

结论

总结来说,Pandas DataFrame中的endswith()方法允许我们检查给定列的元素是否以指定的后缀结尾。这个方法可以根据DataFrame列中存在的特定字符串模式来操作数据。通过使用endswith()方法,我们可以根据特定的条件来过滤和转换数据,使其成为数据分析和数据清洗任务的有用工具。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程