当列1具有特定值时,如何高效地创建列3和列2的最小值的新列?你知道吗
示例:
my_dataframe=pd.DataFrame({'col1':[1.0,2.0,3.0],
'col2':[4.0,5.0,6.0],
'col3':[0.25,np.nan,0.25]})
my_dataframe = my_dataframe.assign(col4 = lambda x: np.where(x['col1']>1, np.minimum(x['col2'], x['col3']), 0))
RuntimeWarning: invalid value encountered in minimum
我假设np.minimum
函数不能处理NA,那么如何解决这个问题呢?numpy.nanmin函数也不能正常工作。你知道吗
它返回以下错误,因为它不应用于数组
TypeError: 'Series' object cannot be interpreted as an integer
所以我试着写如下
my_dataframe = my_dataframe.assign(col4 = lambda x: np.where(x['col1']>1, np.nanmin(x['col2'].values(), x['col3'].values()), 0))
返回错误:
TypeError: 'numpy.ndarray' object is not callable
使用^{} 选择两列以
[]
或类似于np.nanmin
的方式子集:相关问题 更多 >
编程相关推荐