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

Python 如何在数据帧中拆分列中的字符串?,python,pandas,dataframe,Python,Pandas,Dataframe,这是我的文件的一个例子 Name Att1 Att2 Att3 AB_EN 1 2 3 CD 5 6 7 FG_EN 7 8 9 因此,在“Name”列中存在“_EN”,我想删除“_EN”部分。输出应如下所示: Name Att1 Att2 Att3 AB 1 2 3 CD 5

这是我的文件的一个例子

Name     Att1     Att2     Att3
AB_EN    1        2        3
CD       5        6        7
FG_EN    7        8        9
因此,在“Name”列中存在“_EN”,我想删除“_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]
然而,这是行不通的。执行此操作的好方法是什么?

使用str.split

例:

输出:

你可以使用

在你的情况下,那就是

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

这应该适合您:

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

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

可能存在多个副本的副本:
df['Name']=(df.Name
      .str.split('_')  # split on _
      .str[0] # Only keep first part of the split
    )
df['Name'] = [name.split('_')[0] for name in df['Name']]