关键词

python pandas分割DataFrame中的字符串及元组的方法实现

当数据分析师处理一些包含字符串和元组的DataFrame时,需要对这些数据进行适当的分割和处理,以便更好地进行数据分析和挖掘。Python pandas提供了非常方便的方法,可以轻松地完成对DataFrame中字符串和元组的分割处理。

1. 分割DataFrame中的字符串

在DataFrame中,可以使用 str.split() 方法来对字符串进行分割。该方法将 DataFrame 中的所有字符串列视为一个 Series 序列,并返回包含分割字符串后结果的 DataFrame。

下面以一个包含字符串的 DataFrame 为例:

import pandas as pd

data = {'Name':['Anna', 'Bob', 'Cassie'],
        'Gender':['F', 'M', 'F'],
        'Description':['22 years old', '25 years old', '30 years old']}

df = pd.DataFrame(data)

现在需要将 Description 列中的年龄和岁数分别提取出来,可以使用 str.split() 方法进行分割。代码实现如下:

df[['Age', 'Year']] = df['Description'].str.split(' ', expand=True)

print(df)

运行结果如下:

     Name Gender   Description Age         Year
0    Anna      F  22 years old  22  years old
1     Bob      M  25 years old  25  years old
2  Cassie      F  30 years old  30  years old

可以看到,通过 str.split() 实现了对 Description 列的分割操作,并将结果保存到了新的两列 AgeYear 中。

2. 分割DataFrame中的元组

在DataFrame中,如果某列中的元素是元组类型,可以使用 DataFrame.apply() 方法结合 lambda 表达式进行元组的分割,例如下面的 DataFrame 中:

data = {'Name':['Anna', 'Bob', 'Cassie'],
        'Age':[(22, 160), (25, 168), (30, 172)]}

df = pd.DataFrame(data)

元组有两个值,需要将年龄和身高分别提取出来,可以使用 DataFrame.apply() 方法结合 lambda 表达式实现。代码如下:

df[['Age', 'Height']] = df['Age'].apply(lambda x: pd.Series(x))

print(df)

运行结果如下:

     Name      Age  Height
0    Anna  (22, 160)     160
1     Bob  (25, 168)     168
2  Cassie  (30, 172)     172

可以看到,通过 DataFrame.apply() 方法结合 lambda 表达式实现了对元组列的分割操作,并将结果保存到了新的两列 AgeHeight 中。

以上就是对 Python pandas 分割 DataFrame 中的字符串及元组的方法实现的详细讲解。

本文链接:http://task.lmcjl.com/news/17328.html

展开阅读全文