私は次のようなリストを持っています:li = ['ShortHair','LongHair','Medium Hair']
Python - 別の列から部分文字列を取って列を更新する方法は?
col2とupdate col3から取得した場合、col2に上記の部分文字列が含まれているかどうかを確認します。そうでない場合は、そのままcol3を残してください。
col1 col2 col3
0 w I have ShortHair
1 x You Have LongHair
2 y I have no hair W
3 z Look ! Medium Hair
EDIT:のストリングの複数の出現箇所がアレイ内に存在する場合、最初の値とフォームCOL2および更新COL3両方を削除取得する
col1 col2 col3
0 w I have ShortHair U
1 x LongHair You Have V
2 y I have no hair W
3 z Look Medium Hair! L
。
col2から部分文字列を削除できますが、col3は更新できません。私は試しました:
data[data.col2.str.contains('|'.join(li)),"col3"] = data["col2"].map(lambda x: re.findall('|'.join(li),x)[0])
これはエラーIndexError: list index out of range
を与えます。
これを行うにはどうすればよいですか?
"あなたは長髪か短髪ですか?" col3に含まれるものとその理由 – Alexander
両方を削除してください。私は質問 – harshit
@アレキサンダーを更新します私はこれが私が使用しているデータセットでは起こらないと確信しています。しかし、私の目的のために、最初の価値を取ることで十分です – harshit