如何通过在行中查找值来对替换进行矢量化。在
对于以下数据帧:
df = pd.DataFrame([(1, 2, 3, 4, np.NaN, np.NaN, 4),
(1, 2, 3, 0, 0, np.NaN, 0),
(1, 2, 3, 4, 5, np.NaN, 5)],
columns = ['P0', 'P1', 'P2', 'P3', 'P4', 'P5', 'Last_not_NaN_value'],
index = ['row1', 'row2', 'row3'])
输出df:
^{pr2}$我怎么能做像
df.replace(df['Last_not_NaN_value'], 0 )
<;-它什么也不做。在
如何查找last_not_NaN_value
在df中的位置,并将其替换为0,例如:
P0 P1 P2 P3 P4 P5 Last_not_NaN_value
row1 1 2 3 *0* NaN NaN 4
row2 1 2 3 0 *0* NaN 0
row3 1 2 3 4 *0* NaN 5
按要求矢量化。进行广播比较,找到替换的索引,然后进行相应的替换。然后,您可以使用一个简洁的
df[:] = ...
技巧将结果分配回来。在这是一种解决方案,但不是矢量化的:
相关问题 更多 >
编程相关推荐