1. ホーム
  2. python

[解決済み] python pandas - 列を別の列で分割する

2022-02-11 02:58:39

質問

にカラムを追加しようとしています。 DataFrame のように、他の2つの列の除算の積である。

df['$/hour'] = df['$']/df['hours']

これは問題なく動作しますが、もし ['hours'] よりも小さい場合は 1 であれば、その ['$/hour'] の値より大きい。 ['$'] これは私が望むものではありません。

という操作を制御する方法はありますか? ['hours'] < 1 その後 df['$/hour'] = df['$'] ?

解決方法は?

を使用することができます。 numpy.where :

print df
    hours  $
0       0  8
1       0  9
2       0  9
3       3  6
4       6  4
5       3  7
6       5  5
7      10  1
8       9  3
9       3  6
10      5  4
11      5  7

df['$/hour'] = np.where(df['hours'] < 1, df['hours'], df['$']/df['hours'])
print df
    hours  $    $/hour
0       0  8  0.000000
1       0  9  0.000000
2       0  9  0.000000
3       3  6  2.000000
4       6  4  0.666667
5       3  7  2.333333
6       5  5  1.000000
7      10  1  0.100000
8       9  3  0.333333
9       3  6  2.000000
10      5  4  0.800000
11      5  7  1.400000