あなたがstr[0]
によってリストの最初の値を選択しsplit
を必要としているようだ:
df['type'] = df['Trousers'].str.split('-').str[0]
サンプル:extract
と
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
別の解決策:
df['Trousers'] = df['Trousers'].str.extract('([a-zA-z]+)-', expand=False)
print (df)
Trousers
0 Jeans
1 Chino
2 Smart
生データ、あなたのdfを作成するためのコード、あなたの試行と望ましい出力を投稿してください。基本的にはこれを行うことができますが、さらに明確にする必要があります – EdChum