我有一个数据框,其中有一个“裤子”列,其中包含许多不同类型的裤子。大多数裤子会按其类型开始。例如:Jeans- Replay-blue,或Chino- Uniqlo-〜,或Smart-Next-〜)。其他人只会有一个类型,但只有一个长名(2或3个字符串)
我想要的是遍历该列,以将值更改为Jean(如果牛仔裤位于单元格中)或Chinos(如果Chino位于单元格中,等等)。

如何通过我的for循环实现呢?

最佳答案

似乎您需要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

关于python - 有问题的值(value)观,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42925381/

10-12 19:38