我有一个数据框,其中有一个'Trousers'列,其中包含许多不同类型的裤子。大多数裤子都是从他们的类型开始的。例如:Jeans- Replay-blue,或Chino-Uniqlo-~,或者Smart-Next-~)。其他人只有一个类型,但只有一个长名称(2或3个字符串) 我想要的是循环遍历该列,将值更改为Jean 如果牛仔裤在单元格中,或者 Chinos如果Chino在单元格中等等。 ..所以我可以轻松地将它们分组。
如何通过我的for循环实现这一目标?
答案 0 :(得分:1)
您似乎需要split
,然后按str[0]
选择列表的第一个值:
df['type'] = df['Trousers'].str.split('-').str[0]
样品:
df = pd.DataFrame({'Trousers':['Jeans- Replay-blue','Chino- Uniqlo-~','Smart-Next-~']})
print (df)
Trousers
0 Jeans- Replay-blue
1 Chino- Uniqlo-~
2 Smart-Next-~
df['type'] = df['Trousers'].str.split('-').str[0]
print (df)
Trousers type
0 Jeans- Replay-blue Jeans
1 Chino- Uniqlo-~ Chino
2 Smart-Next-~ Smart
df['Trousers'] = df['Trousers'].str.split('-').str[0]
print (df)
Trousers
0 Jeans
1 Chino
2 Smart
extract
的另一个解决方案:
df['Trousers'] = df['Trousers'].str.extract('([a-zA-z]+)-', expand=False)
print (df)
Trousers
0 Jeans
1 Chino
2 Smart