簡體   English   中英

逐行最大/最小熊貓

[英]Rowwise max/min in pandas

我想做這樣的事情:

df['A'] = max(0, min(df.B, df.C - df.D))

但是,我得到一個ValueError (“系列的真值是模棱兩可的”),我想這意味着maxmin函數正在幕后進行一些布爾運算,並且這不會分布在Series上。 我知道您可以通過例如獲取某些列的最小值/最大值

df[['col1','col2','col3']].max(axis = 1)

因此,我應該能夠通過制作一些帶有中間值的臨時列來獲得所需的輸出,但是我想要一個直接執行此操作的干凈解決方案。 如何做到這一點,而不必為多余的中間值添加額外的列?

maxmin是內置的Python函數。 它們不是為Pandas / NumPy隨附的矢量化功能而設計的。

相反,您可以使用np.maximum / np.minimum進行np.minimum元素計算:

import numpy as np

df['A'] = np.maximum(0, np.minimum(df['B'], df['C'] - df['D']))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM