如何在数据帧中拆分列中的字符串?

2024-09-19 20:55:36 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的文件的一个例子

Name     Att1     Att2     Att3
AB_EN    1        2        3
CD       5        6        7
FG_EN    7        8        9

因此,在“Name”列中,如果存在“\u EN”,我想删除“\u EN”部分。输出应如下所示:

Name     Att1     Att2     Att3
AB       1        2        3
CD       5        6        7
FG       7        8        9

这就是我所尝试的:

name = df['Name']

for entry in name:
    if "_EN" in entry:
       entry = entry.split('_')[0]

然而,这是行不通的。做这件事的好方法是什么


Tags: 文件nameindfforabcd例子
3条回答

这应该适合您:

df['Name'] = [name.split('_')[0] for name in df['Name']]

您只需对数据帧中的序列进行适当的更改

您可以使用string methods of the pandas Series

对你来说那就是

df['Name']=(df.Name
      .str.split('_')  # split on _
      .str[0] # Only keep first part of the split
    )

使用str.split

例如:

df = pd.DataFrame({"Name": ["AB_EN", "CD", "FG_EN"]})
df['Name'] = df['Name'].str.split("_").str[0]
print(df)

输出:

  Name
0   AB
1   CD
2   FG

相关问题 更多 >