这是我拥有的文件的一个示例,
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]
但是,这不起作用。有什么好方法吗?
答案 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']]
您只需要对数据框中的系列进行适当的更改即可。