私はデータフレームを持っています:
subtracted Subs hrs
0 281871.120 450878.77 0.00
1 221343.432 229535.34 0.00
2 197454.408 32080.93 0.00
3 41934.000 -9853.07 32080.93
減算列から時間列に正の値(Subs列に関して)を置き換えたい。
期待される出力:
subtracted Subs hrs
0 281871.120 450878.77 281871.120
1 221343.432 229535.34 221343.432
2 197454.408 32080.93 197454.408
3 41934.000 -9853.07 32080.93
誰かが私にそれを行う正しい方法を提案できますか?
loc
、where
またはnumpy.where
:を使用して正の値で作成されたマスクに置き換えることができます。
m = df['Subs'] > 0
df.loc[m, 'hrs'] = df['subtracted']
df['hrs'] = df['subtracted'].where(m, df['hrs'])
df['hrs'] = np.where(m, df['subtracted'], df['hrs'])
print (df)
subtracted Subs hrs
0 281871.120 450878.77 281871.120
1 221343.432 229535.34 221343.432
2 197454.408 32080.93 197454.408
3 41934.000 -9853.07 32080.930
負の値で作成されたマスクの場合は、次を使用できますmask
。
m = df['Subs'] < 0
df['hrs'] = np.where(m, df['hrs'], df['subtracted'])
df['hrs'] = df['subtracted'].mask(m, df['hrs'])
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加