将一列拆分为多列,但只保留其中两列

问题描述 投票:0回答:1

我有以下数据框:

import pandas as pd
df = pd.DataFrame({'AB': ['A1_B1_C1', 'A2_B2_C2']})

我想在分隔符

AB
的前两次出现处拆分列
_
,但只保留前两列。换句话说,输出必须是

         AB   A   B
0  A1_B1_C1  A1  B1
1  A2_B2_C2  A2  B2

目前,我可以用

df[['A','B', 'C']]=df['AB'].str.split('_',n=2,expand=True)
df = df.drop(columns='C')

但这似乎很浪费。有什么选项可以让我不需要创建一个随后必须删除的列?

python pandas split
1个回答
0
投票

是的,您无需创建需要删除的额外列即可实现此目的。您可以使用

str.split
方法并将生成的 DataFrame 直接分配给所需的列。这是一个例子:

import pandas as pd

df = pd.DataFrame({'AB': ['A1_B1_C1', 'A2_B2_C2']})

# Split the 'AB' column and assign to new columns directly
df[['A', 'B']] = df['AB'].str.split('_', n=2, expand=True)[[0, 1]]

# Display the resulting DataFrame
print(df)

这将为您提供所需的输出:

         AB   A   B
0  A1_B1_C1  A1  B1
1  A2_B2_C2  A2  B2

此方法直接选择

str.split
操作产生的前两列,而不为“C”创建中间列。

© www.soinside.com 2019 - 2024. All rights reserved.