📌  相关文章
📜  在 Pandas 中将行拆分为多列 - Python (1)

📅  最后修改于: 2023-12-03 15:37:25.580000             🧑  作者: Mango

在 Pandas 中将行拆分为多列 - Python

在 Pandas 中,我们可以使用 str 类型的方法将从 DataFrame 的列中取出的字符串进行拆分。

方法1 - 使用 str.split() 方法

针对一个列中包含每个元素包含不同子元素的情况,我们可以使用 str.split() 方法将其拆分成不同的列。

示例代码如下:

import pandas as pd

data = {'Name': ['John_Adam', 'Jane_Jacob', 'Emily_Ryan'],
        'Score': [98, 80, 95]}

df = pd.DataFrame(data)

# 将 'Name' 列使用 '_' 进行拆分
df[['First_Name', 'Last_Name']] = df['Name'].str.split('_', expand=True)

# 展示新的 DataFrame
print(df)

输出结果如下:

         Name  Score First_Name Last_Name
0   John_Adam     98       John      Adam
1  Jane_Jacob     80       Jane     Jacob
2  Emily_Ryan     95      Emily      Ryan

以上代码将 'Name' 列中的字符串使用 '_' 进行拆分,并且将拆分后的结果存储在新的两列 'First_Name' 和 'Last_Name' 中。

方法2 - 使用正则表达式

除了使用固定的字符作为分割符,我们还可以使用正则表达式进行拆分。

示例代码如下:

import pandas as pd

data = {'Name': ['John_Adam,123', 'Jane_Jacob,246', 'Emily_Ryan,135'],
        'Score': [98, 80, 95]}

df = pd.DataFrame(data)

# 将 'Name' 列使用 ',' 进行拆分
df[['First_Name', 'Last_Name', 'ID']] = df['Name'].str.extract('(\w+)_(\w+),(\d+)')

# 展示新的 DataFrame
print(df)

输出结果如下:

            Name  Score First_Name Last_Name   ID
0   John_Adam,123     98       John      Adam  123
1  Jane_Jacob,246     80       Jane     Jacob  246
2  Emily_Ryan,135     95      Emily      Ryan  135

以上代码相比方法1多了一个 'ID' 列,使用正则表达式可以更灵活地进行拆分和匹配。

结论

通过以上两种方法,我们可以将 DataFrame 中的行拆分为多列,以便更好地对数据进行处理和分析。在实际应用中,我们可以根据具体的业务需求选择使用不同的分割方式和方法来对数据进行处理。