📌  相关文章
📜  将一列拆分为两列 pandas - Python (1)

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

将一列拆分为两列 pandas

在 Pandas 中,有时我们需要将一个包含多个信息的列中的信息拆分到不同的列中,以便更好地进行分析。这个问题可以使用 Pandas 的 str.split() 方法来解决。

假设我们有一列包含两个信息,分别是名称和姓氏,用空格分开。我们需要将这个列拆分成两列,一列是名称,一列是姓氏。

首先,我们将使用 Pandas 的 read_csv() 方法从 CSV 文件中读取数据,然后选择要拆分的列。

import pandas as pd

# 读取 CSV 文件
data = pd.read_csv('data.csv')

# 选择要拆分的列
names = data['Name'].str.split(expand=True)

此时,names 变量将包含两列,一列是名称,一列是姓氏。 expand=True 参数将使输出更加规范,并且每个部分都在其自己的列中。

接下来,我们将将拆分的结果添加回到原始数据框中。Pandas 的 concat() 方法可以将两个数据框连接在一起。

# 将结果添加回到原始数据框中
data = pd.concat([data, names], axis=1)

# 删除原始数据中的 Name 列
data.drop('Name', axis=1, inplace=True)

# 重命名新的列
data.rename(columns={0: 'First Name', 1: 'Last Name'}, inplace=True)

最终,我们将得到一个新的数据框,其中包含两个新的列,即第一个名称和第二个名称。

下面是完整的代码:

import pandas as pd

# 读取 CSV 文件
data = pd.read_csv('data.csv')

# 选择要拆分的列
names = data['Name'].str.split(expand=True)

# 将结果添加回到原始数据框中
data = pd.concat([data, names], axis=1)

# 删除原始数据中的 Name 列
data.drop('Name', axis=1, inplace=True)

# 重命名新的列
data.rename(columns={0: 'First Name', 1: 'Last Name'}, inplace=True)

# 显示数据框
print(data.head())