2016-08-30 6 views
-3

"Language_cat"リストの文字列がdf_datデータフレームの "Languages"列の任意の行と一致する場合、同じ行:pandas.dataframe.str.contains()を使用して文字列値が特定の列のいずれかの行に一致する場合にダミーを生成

Language_cat = ['english','french','deutsch','italian','russian','spanish'] 

for j in Language_cat: 
df_dat[j+'lang_cat'] = df_dat['Languages'].apply(lambda x: 1 if df_dat.Languages.str.contains(j) else 0) 

しかし、これはエラー

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all(). 
+0

任意の特定のエラーですか? –

+1

IIUCあなたは単に 'df_dat ['Languages']を実行することができます。str.contains( '|' .join(Language_cat))astype(int)' – EdChum

+0

[pd.get_dummies](http:// pandas。 pydata.org/pandas-docs/stable/generated/pandas.get_dummies.html)? – ayhan

答えて

0
Language_cat = ['english','french','deutsch','italian','russian','spanish'] 

for j in Language_cat: 
    df_dat[j+'lang_cat'] = df_dat['Languages'].str.contains(j).astype(int) 
関連する問題