我有一个数据框,其中有一个“裤子”列,其中包含许多不同类型的裤子。大多数裤子会按其类型开始。例如: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/