pandas .str.split()后取某一部分数据
在数据处理中,经常会遇到需要对字符串进行拆分并提取其中的某一部分数据的情况。而在使用Python中的pandas库进行数据处理时,可以使用.str.split()
方法来实现字符串的拆分操作,然后再通过索引取出所需的数据部分。
下面将详细介绍如何使用pandas的.str.split()
方法来实现对字符串的拆分,并最终取出需要的部分数据。
1. 准备工作
首先,我们需要导入pandas库,并创建一个包含字符串数据的DataFrame作为示例:
import pandas as pd
data = {'name': ['Alice_Wang', 'Bob_Smith', 'Tom_Jones']}
df = pd.DataFrame(data)
print(df)
运行以上代码,可以得到如下的DataFrame:
name
0 Alice_Wang
1 Bob_Smith
2 Tom_Jones
在这个示例数据中,name
列包含了以_
为分隔符的姓名数据。
2. 使用.str.split()
拆分字符串
接下来,我们将使用.str.split()
方法对name
列进行字符串的拆分,并将拆分后的数据存储在新的列中:
df['name_split'] = df['name'].str.split('_')
print(df)
运行以上代码,可以得到如下的DataFrame:
name name_split
0 Alice_Wang [Alice, Wang]
1 Bob_Smith [Bob, Smith]
2 Tom_Jones [Tom, Jones]
可以看到,我们将name
列的字符串按照_
拆分成了两部分,并将拆分后的结果存储在了name_split
列中。
3. 提取需要的数据部分
有了拆分后的结果,我们可以通过索引来提取需要的数据部分。例如,如果我们想要取出每个姓名的姓氏部分,可以通过索引[1]
来获取:
df['last_name'] = df['name_split'].apply(lambda x: x[1])
print(df)
运行以上代码,可以得到如下的DataFrame:
name name_split last_name
0 Alice_Wang [Alice, Wang] Wang
1 Bob_Smith [Bob, Smith] Smith
2 Tom_Jones [Tom, Jones] Jones
可以看到,我们成功提取出了每个姓名的姓氏部分,并将其存储在了last_name
列中。
通过以上步骤,我们使用pandas的.str.split()
方法成功实现了对字符串的拆分操作,并提取出了所需的数据部分。
总结一下,使用.str.split()
方法可以方便地对字符串进行拆分,通过索引可以方便地取出拆分后的数据部分,为数据处理和分析提供了很大的便利性。