【发布时间】:2021-09-25 00:39:37
【问题描述】:
我正在尝试加快我的一项功能。我已经读到“矢量化”是在 Pandas 中运行这些类型操作的最快方法,但是如何使用此代码实现这一点(或其他更快的方法):
虚拟数据
a = pd.DataFrame({'var1' : [33, 75, 464, 88, 34], 'imp_flag' : [1, 0, 0, 1, 1], 'donor_index' : [3, np.nan, np.nan, 4, 0]})
>>> a
var1 imp_flag donor_index
0 33 1 3.0
1 75 0 NaN
2 464 0 NaN
3 88 1 4.0
4 34 1 0.0
有问题的操作
for index, row in a[a['imp_flag'] == 1].iterrows():
new_row = a[a.index == row.donor_index]
b = b.append(new_row)
预期输出
>>> b
var1 imp_flag donor_index
1 75 0 NaN
1 75 0 NaN
2 464 0 NaN
【问题讨论】:
-
您提供的输出与您的代码返回不匹配。这是预期的吗?你能澄清一下这个问题吗?
标签: python pandas performance numpy