Pandas使用分隔符或正则表达式将字符串拆分为多列

  • Post category:Python

要使用Pandas将字符串拆分为多列,可以使用str.split()方法。该方法可以基于分隔符或正则表达式将字符串拆分为多列。下面是详细的步骤:

  1. 导入Pandas库
import pandas as pd
  1. 创建一个包含字符串的Pandas Series
data = pd.Series(['apple,5,red', 'banana,3,yellow', 'orange,2,orange'])
  1. 使用str.split()方法将字符串拆分为多列,并指定分隔符
data = data.str.split(',', expand=True)

在这个例子中,我们使用逗号作为分隔符,expand=True参数表示每个拆分的字符串都将创建为一个新的列。执行以上代码之后,字符串就会被拆分为3列。

  1. 为每列添加列标签
data.columns = ['fruit', 'quantity', 'color']

我们指定每列的列标签,方便后续对每列进行分析和操作。

  1. 查看结果
print(data)

输出结果:

     fruit quantity   color
0    apple        5     red
1   banana        3  yellow
2   orange        2  orange

我们可以看到,每个字符串被拆分为3列,并且每列都拥有相应的列标签。

示例2:

  1. 创建一个包含字符串的Pandas Dataframe
df = pd.DataFrame({'Name': ['John Adams', 'Thomas Jefferson', 'James Monroe'],
                  'BirthYear': ['1735-07-04', '1743-04-13', '1758-04-28']})
  1. 使用str.split()方法将出生年份拆分为年、月、日三列
df[['Year', 'Month', 'Day']] = df['BirthYear'].str.split('-', expand=True)

在这个例子中,我们使用-作为分隔符,同时将拆分结果保存到Dataframe的新列中。

  1. 查看结果
print(df)

输出结果:

              Name   BirthYear  Year Month Day
0       John Adams  1735-07-04  1735    07  04
1  Thomas Jefferson  1743-04-13  1743    04  13
2     James Monroe  1758-04-28  1758    04  28

我们可以看到,每个出生年份被拆分为3列,并且以相应的列标签进行了命名。

在基于分隔符或正则表达式将字符串拆分为多列的过程中,我们需要注意以下几点:

  • 分隔符或正则表达式必须要与原字符串匹配。
  • 如果新拆分列的数量与原列数量不同,需要用expand=True参数来保证每个字符串都被创建为一个新的列。
  • 为新的拆分列命名新的列标签,方便后续的数据分析和操作。

这就是使用Pandas将字符串拆分为多列的完整攻略,希望对你有所帮助。