python - 在列值和常量全局值之间取最小值

标签 python numpy pandas dataframe minimum

我想为给定的数据框创建新列,我在其中计算列值和某个全局值之间的最小值(在本例中为 7)。所以我的 df 有列 sessionnote 我想要的输出列是 minValue :

session     note     minValue
1       0.726841     0.726841
2       3.163402     3.163402  
3       2.844161     2.844161
4       NaN          NaN

我正在使用内置的 Python 方法 min :

df['minValue']=min(7, df['note'])

我有这个错误:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

最佳答案

使用np.minimum :

In [341]:
df['MinNote'] = np.minimum(1,df['note'])
df

Out[341]:
   session      note  minValue   MinNote
0        1  0.726841  0.726841  0.726841
1        2  3.163402  3.163402  1.000000
2        3  2.844161  2.844161  1.000000
3        4       NaN       NaN       NaN

另外 min 不理解类数组比较因此你的错误

关于python - 在列值和常量全局值之间取最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33689714/

相关文章:

Python 3 urllib urlparse URL解析

python - 替换单个 DataFrame 列中的负值

python - 为什么 Linux 可以在多进程中接受套接字?

python - 如何标准化矩阵?

python - 我正在尝试遍历多个范围以从另一个范围创建多维 ndarray

python - 按一列分组并找到 Pandas 中其他两列差异的最大(绝对)值

python - 使用 python 和 pandas 合并 csv 文件(重叠行)

python - 将函数重新定义为自身的一部分——为什么非法?

python - 使用 FORTRAN 格式字符串将 Pandas DataFrame 写入文件

python - Apache arrow,零拷贝的 numpy 数组对齐