これは、 質問.
データフレーム列、擬似コードの例を作成するためにif / elif / elseロジックをいくつか実行したいと思います。
if Col1 = "A" and Col2 = 1 then Col3 = "A1"
else if Col1 = "A" and Col2 = 0 then Col3 = "A0"
else Col3 = "XX"
そこにタイプを混ぜてもいいですか?私はこのエラーが発生しています:
TypeError:dtyped [int64]配列と[bool]型のスカラーを比較できません
回答:
回答№1は2私はあなたが使用できると思う:
df["Col3"] = "XX"
df.loc[(df.Col1 == "A") & (df.Col2 == 1), "Col3"] = "A1"
df.loc[(df.Col1 == "A") & (df.Col2 == 0), "Col3"] = "A0"
ダブル numpy.where
:
df["Col3"] = np.where((df.Col1 == "A") & (df.Col2 == 1) , "A1",
np.where((df.Col1 == "A") & (df.Col2 == 0), "A0", "XX"))
サンプル:
df = pd.DataFrame({"Col1":["A","B","A","B"],
"Col2":[1,1,0,0]})
print (df)
Col1 Col2
0 A 1
1 B 1
2 A 0
3 B 0
df["Col3"] = "XX"
df.loc[(df.Col1 == "A") & (df.Col2 == 1), "Col3"] = "A1"
df.loc[(df.Col1 == "A") & (df.Col2 == 0), "Col3"] = "A0"
df["Col4"] = np.where((df.Col1 == "A") & (df.Col2 == 1) , "A1",
np.where((df.Col1 == "A") & (df.Col2 == 0), "A0", "XX"))
print (df)
Col1 Col2 Col3 Col4
0 A 1 A1 A1
1 B 1 XX XX
2 A 0 A0 A0
3 B 0 XX XX