当数据分析师处理一些包含字符串和元组的DataFrame时,需要对这些数据进行适当的分割和处理,以便更好地进行数据分析和挖掘。Python pandas提供了非常方便的方法,可以轻松地完成对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
列的分割操作,并将结果保存到了新的两列 Age
和 Year
中。
在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
表达式实现了对元组列的分割操作,并将结果保存到了新的两列 Age
和 Height
中。
以上就是对 Python pandas 分割 DataFrame 中的字符串及元组的方法实现的详细讲解。
本文链接:http://task.lmcjl.com/news/17328.html