如何在熊猫数据框内的列中拆分字符串?

时间:2019-10-10 11:35:45

标签: python pandas dataframe

这是我拥有的文件的一个示例,

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

因此,在“名称”列中存在“ _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]

但是,这不起作用。有什么好方法吗?

3 个答案:

答案 0 :(得分:1)

使用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

答案 1 :(得分:0)

您可以使用non-type template parameter

在您的情况下

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

答案 2 :(得分:0)

这应该对您有用:

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

您只需要对数据框中的系列进行适当的更改即可。