我有以下变量:
import pandas as pd
import numpy as np
y = pd.DataFrame([[1, 2, 3], [4, 5, 6], [7, 8, 9]], columns=['A', 'B', 'C'])
mask_y = np.array([[True, False, False], [False, False, True], [False, False, False]])
dist_y = pd.Series([0.222, 0.333, 0.444])
我需要将dist_y
的值添加到y
中,使用mask_y
True
的值作为条件。
A B C
0 1.222 2 3.000
1 4.000 5 6.333
2 7.000 8 9.000
我尝试了以下方法:
y.loc[:, mask_y] += dist_y.values[:, None]
但这不管用。你知道我该怎么做吗?
3条答案
按热度按时间zd287kbt1#
您可以使用广播的
dist_y
添加y
,然后有条件地将结果赋回b1uwtaje2#
ar7v8xwq3#
稍微修改一下Ynjxsjmh's answer,就可以提高效率。