2
私はプログラミングに慣れていて、あなたの洞察力に感謝します!Python pandasデータフレームの[]内の指定された文字列を抽出し、ブール値を使って新しい列を作成する方法
私はこのようなデータフレームを持っています。
df;
info Price
0 [100:Sailing] $100
1 [150:Boating, 100:Sailing] $200
2 [200:Surfing] $300
私は情報欄の情報に基づいて活動名を持つ新しい列を作成し、情報列の対応する名前がある場合、新しい列に1を追加したいと思います。それは以下のデータフレームのように見えます。 (このアプローチは他の列で動作本家)
Price Sailing Boating Surfing
0 $100 1 0 0
1 $200 1 1 0
2 $300 0 0 1
私はそうidealy私が書きたい、このようなデータの10を超える数千人を持っている...
df1 = df.info.str.extract(r'(Boating|Sailing|Surfing)',expand=False)
df2 = pd.concat([df,pd.get_dummies(df1).astype(int)],axis=1)
をコードブローを試みたが、うまくいきませんでした情報列の指定された文字列(Surfingのような)を自動的に抽出するコードは、上記のようにアクティビティ名と1または0を返す新しい列を作成します。データフレーム内のデータ型やデータ型の括弧が問題の原因になっていると思っていましたが、これに対処する方法がわかりません。
アドバイスありがとうございました!そのアプローチについて考えることはできませんでした;)コードを実行すると、「AttributeError:pandasでnp.object_dtypeを使用する文字列値で.strアクセサのみを使用できます」というエラーが表示されました。エラーは文字列値ではなく、何とかコードを実行するために変更する必要があります。(?)このエラーの原因は何ですか? – yusuke0426
彼らは私が考える実際のリストにすることができます。これを最初の行 'df1 = df ['info']として試すことができますか?str.join( '___')。str.get_dummies( '___')' – ayhan
うわー!それは魔法のように機能します!どうもありがとうございます! 'df ['info']。str.join( '___')'はinfo欄で括弧を魔法のように削除することに気付きました。しかし、私はこの論理全体がどのように働くかを理解していません。 '.str.join( '___')'と '.str.get_dummies( '___')'の役割について詳しく説明できますか?私は本当にこれを理解したい。 – yusuke0426