Pandas 使用字符串切片生成新列

Pandas 使用字符串切片生成新列

在本文中,我们将介绍如何使用Pandas DataFrame中的字符串切片生成新的列。Pandas是一个强大的数据分析库,提供了各种数据操作和转换方法,非常适合数据清洗和处理。

阅读更多:Pandas 教程

字符串切片

字符串切片是指从字符串中选择一部分子串。在Python中,我们可以使用方括号操作符和切片符号来进行字符串切片。如果我们有一个字符串:

text = "Hello, world!"
Python

我们可以使用以下代码来选择其中的一部分:

part = text[0:5]
# "Hello"
Python

其中,方括号中的第一个数表示要选择的子串的起始位置,第二个数表示结束位置(不包括此位置的字符)。

生成新列

在Pandas中,我们可以使用Series.str属性来进行字符串操作。例如,如果我们有一个包含姓名和姓氏的列,我们可以使用以下代码将它们分开:

import pandas as pd

df = pd.DataFrame({'Name': ['John Doe', 'Jane Smith', 'Bob Johnson']})
df['First Name'] = df['Name'].str.split(' ').str[0]
df['Last Name'] = df['Name'].str.split(' ').str[1]

print(df)
Python

输出结果为:

          Name First Name Last Name
0     John Doe       John       Doe
1  Jane Smith       Jane     Smith
2  Bob Johnson        Bob  Johnson
Python

我们可以看到,通过使用Series.str.split()方法,我们将每个名字分成了两个部分。我们还创建了两个新的列,包含了FirstName和LastName部分。

同样的,我们可以使用Series.str.slice()方法来进行字符串切片。例如,我们可以有一个包含日期和时间的列,格式为YYYY-MM-DD HH:MM:SS:

df = pd.DataFrame({'Datetime': ['2021-10-01 12:30:00', '2021-10-02 15:45:00', '2021-10-03 08:00:00']})
df['Date'] = df['Datetime'].str.slice(0,10)
df['Time'] = df['Datetime'].str.slice(11,19)

print(df)
Python

输出结果为:

             Datetime        Date      Time
0  2021-10-01 12:30:00  2021-10-01  12:30:00
1  2021-10-02 15:45:00  2021-10-02  15:45:00
2  2021-10-03 08:00:00  2021-10-03  08:00:00
Python

我们可以看到,我们使用Series.str.slice()方法选择了日期和时间的不同部分,并创建了新的列。

应用到实践

现在让我们使用一个真实的数据集来演示如何使用字符串切片生成新列。我们将使用一个包含销售数据的数据集,其中每行包含日期和销售额。我们想要创建一个新的列,它包含每项销售的月份。让我们先看一下数据集:

sales_data = {
    'Date': ['2021-01-15', '2021-02-18', '2021-03-27', '2021-04-02', '2021-05-07', '2021-06-14'],
    'Sales': [500, 750, 1000, 650, 1200, 900]
}

df = pd.DataFrame(sales_data)
print(df)
Python

输出结果为:

         Date  Sales
0  2021-01-15    500
1  2021-02-18    750
2  2021-03-27   1000
3  2021-04-02    650
4  2021-05-07   1200
5  2021-06-14    900
Python

现在,我们可以使用Series.str.slice()方法来选择日期字符串的相应部分。由于我们只想要月份部分,我们需要选择字符串中的5到7个字符。我们还可以使用astype()方法将新列转换为整数类型。我们可以按照以下方式实现它:

df['Month'] = df['Date'].str.slice(5,7).astype(int)

print(df)
Python

输出结果为:

         Date  Sales  Month
0  2021-01-15    500      1
1  2021-02-18    750      2
2  2021-03-27   1000      3
3  2021-04-02    650      4
4  2021-05-07   1200      5
5  2021-06-14    900      6
Python

我们可以看到,我们使用Series.str.slice()方法选择了日期字符串中的月份部分,并将其转换为整数类型。我们还创建了一个新的列,包含了月份信息。

总结

在本文中,我们介绍了如何使用Pandas DataFrame中的字符串切片生成新的列。我们学习了如何使用Series.str属性进行字符串操作,包括字符串分割和字符串切片。我们还演示了如何将这些操作应用到实际数据集中,以生成新的列。这些知识可帮助您更轻松地处理和转换数据,并更好地发挥Pandas的威力。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册