Pandas: 切分字符串并创建新列
在本文中,我们将介绍如何使用Pandas库来切分字符串并创建新列。Pandas是Python中一个强大的数据处理工具,提供了许多方便的函数和方法来处理数据。
阅读更多:Pandas 教程
准备工作
首先,我们需要导入Pandas库。如果你还没有安装Pandas,可以使用以下命令进行安装:
pip install pandas
导入Pandas库的代码如下:
import pandas as pd
切分字符串
Pandas库中的str.split()
方法可以很方便地切分字符串。该方法可以接受一个分隔符作为参数,并返回切分后的字符串列表。
假设我们有如下的DataFrame,其中一列包含了人名和年龄的信息:
data = {'person': ['John,25', 'Alice,35', 'Bob,30']}
df = pd.DataFrame(data)
print(df)
输出结果如下:
person
0 John,25
1 Alice,35
2 Bob,30
我们可以使用str.split()
方法切分person
列中的字符串,并将切分后的结果存储到新的列中:
df[['name', 'age']] = df['person'].str.split(',', expand=True)
print(df)
输出结果如下:
person name age
0 John,25 John 25
1 Alice,35 Alice 35
2 Bob,30 Bob 30
在上述例子中,我们将切分后的姓名存储到了name
列中,将切分后的年龄存储到了age
列中。
创建新列
除了将切分后的值存储到新的列中,我们还可以使用assign()
方法直接创建新的列。
假设我们有如下的DataFrame,其中一列是日期字符串:
data = {'date': ['2022-01-01', '2022-02-01', '2022-03-01']}
df = pd.DataFrame(data)
print(df)
输出结果如下:
date
0 2022-01-01
1 2022-02-01
2 2022-03-01
我们可以使用assign()
方法创建一个新的列来存储日期的年份:
df = df.assign(year=df['date'].str.split('-').str[0])
print(df)
输出结果如下:
date year
0 2022-01-01 2022
1 2022-02-01 2022
2 2022-03-01 2022
在上述例子中,我们使用str.split('-').str[0]
将日期切分成一个字符串列表,并提取列表中的第一个元素来获取年份信息。然后,我们使用assign()
方法将年份存储到新的列year
中。
示例说明
我们可以通过一个示例来说明切分字符串并创建新列的更实际的用法。
假设我们有如下的DataFrame,其中一列是包含了邮件地址的字符串:
data = {'email': ['alice@example.com', 'bob@example.com', 'john@example.com']}
df = pd.DataFrame(data)
print(df)
输出结果如下:
email
0 alice@example.com
1 bob@example.com
2 john@example.com
我们可以使用str.split('@').str[1]
将邮件地址切分成一个字符串列表,并提取列表中的第二个元素来获取邮箱的域名信息:
df = df.assign(domain=df['email'].str.split('@').str[1])
print(df)
输出结果如下:
email domain
0 alice@example.com example.com
1 bob@example.com example.com
2 john@example.com example.com
在上述例子中,我们使用str.split('@').str[1]
将邮件地址切分成一个字符串列表,并提取列表中的第二个元素,即邮箱的域名信息。然后,我们使用assign()
方法将域名信息存储到新的列domain
中。
总结
本文介绍了如何使用Pandas库来切分字符串并创建新列的方法。首先,我们可以使用str.split()
方法切分字符串,并将切分后的结果存储到新的列中。其次,我们可以使用assign()
方法直接创建新的列,并在其中存储切分后的值。以上这些方法可以帮助我们处理包含字符串的列,并从中提取有用的信息。