は実際には、私の問題は、に基づいています。pd.get_dummiesやその他の方法は?
Is there a faster way to update dataframe column values based on conditions?
ので、データは次のようになります。
import pandas as pd
import io
t="""
AV4MdG6Ihowv-SKBN_nB DTP,FOOD
AV4Mc2vNhowv-SKBN_Rn Cash 1,FOOD
AV4MeisikOpWpLdepWy6 DTP,Bar
AV4MeRh6howv-SKBOBOn Cash 1,FOOD
AV4Mezwchowv-SKBOB_S DTOT,Bar
AV4MeB7yhowv-SKBOA5b DTP,Bar
"""
data_vec=pd.read_csv(io.StringIO(t),sep='\s{2,}',names=['id','source'])
data_vec
これはdata_vecです:
id source
0 AV4MdG6Ihowv-SKBN_nB DTP,FOOD
1 AV4Mc2vNhowv-SKBN_Rn Cash 1,FOOD
2 AV4MeisikOpWpLdepWy6 DTP,Bar
3 AV4MeRh6howv-SKBOBOn Cash 1,FOOD
4 AV4Mezwchowv-SKBOB_S DTOT,Bar
5 AV4MeB7yhowv-SKBOA5b DTP,Bar
私がしたい場合次のような結果が返されます:(これはmutipletagsまたはカテゴリをベクトル化する方法を意味します)
_id source_Cash 1 source_DTOT source_DTP Food Bar
0 AV4MdG6Ihowv-SKBN_nB 0 0 1 1 0
1 AV4Mc2vNhowv-SKBN_Rn 1 0 0 1 0
2 AV4MeisikOpWpLdepWy6 0 0 1 0 1
3 AV4MeRh6howv-SKBOBOn 1 0 0 1 0
4 AV4Mezwchowv-SKBOB_S 0 1 0 0 1
5 AV4MeB7yhowv-SKBOA5b 0 0 1 0 1
重複している場合は、削除するように警告してください。
複製を、私は知りません。とにかく、 'get_dummies'は複数の値を扱うセパレータを取ります:' data_vec.source.str.get_dummies(sep = '、') ' – JohnE
@JohnEあなたのコメントありがとう、私は何か新しいことを学んだ!セパレータについて知りませんでした。 –
私も!@ジョン@コスプレッド – ileadall42