あなたはnumpyの方がずっと自由に行くことができます。 else文が1つしかない場合は、np.where
を使用します。私は
df = pd.DataFrame({'col1':[1,2,3,4,5],'col2':[1,3,4,5,2]})
df['where'] = pd.np.where(df['col1']>df['col2'], df['col1']+df['col2'], df['col1']+df['col2']+1)
col1 col2 where
0 1 1 3
1 2 3 6
2 3 4 8
3 4 5 10
4 5 2 7
# Not exactly by much like
#if df['col1']>df['col2']:
# return df['col1']+df['col2']
#else:
# return df['col1']+df['col2']+1
あなたは多くの他のはしごの場合のように、他の1以上のものを持っている場合は、np.select
m1 = df['col1']<df['col2']
m2 = df['col1']>df['col2']
df['select'] = pd.np.select([m1,m2], [df['col1']+df['col2'],0], 'equal')
# all conditions, all executables, final else
col1 col2 where select
0 1 1 3 equal
1 2 3 6 5
2 3 4 8 7
3 4 5 10 9
4 5 2 7 0
#Which is much like
#if df['col1']< df['col2']:
# return df['col1'] + df['col2']
#elif df['col1']>df['col2']:
# return 0
#else
# return 'equal'
のために行く:あなたはデータフレームを使用している場合
すなわち
pd.np
を使ってパンダからnumpyのlibararyにアクセスすることができます[boolean配列](https://docs.scipy.org/doc/numpy-1.13.0/user/basics.indexing.html#boolean-or-mask-index-arrays)についてもお読みになることをお勧めします。 numpyとpandasの両方で動作します。 – Georgy