python - Pandas:如果有任何值小于先前的值,如何检查多列?

标签 python pandas

此处已提供单列的解决方案:Pandas: Check if column value is smaller than any previous column value .

但是,我的数据集由许多列组成,我不想暴力破解许多代码。

示例数据集:

    c     d     e
0   3     5     8  
1   1     5     8  
2   5     6     8  
3   6     7     8   
4   2     1     9  
5   9     3     3  

期望的结果:

    c     d     e   c_diff   d_diff   e_diff
0   3     5     8    False    False    False
1   1     5     8     True    False    False
2   5     6     8    False    False    False
3   6     7     8    False    False    False
4   2     1     9     True     True    False
5   9     3     3    False    False     True

有没有办法用简单的 Python/Panda 代码行来执行此任务?

最佳答案

我们可以使用DataFrame.diffDataFrame.lt

df.diff().lt(0).add_suffix('_diff')

   c_diff  d_diff  e_diff
0   False   False   False
1    True   False   False
2   False   False   False
3   False   False   False
4    True    True   False
5   False   False    True

关于python - Pandas:如果有任何值小于先前的值,如何检查多列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61465848/

相关文章:

python - 在没有 GoogleService-Info.plist 的情况下将调试符号上传到 Crashlytics

python - 为什么 pandas 字符串系列为 len() 函数返回 NaN?

python - Pandas 数据框中的字典列

python - 在 Python 中使用 Numpy 或 Pandas 查找整数可以驻留的最接近的边界值对

Python、Pandas将Excel文件合并为1,文件名为A列

python - 在横向连接 SQLAlchemy 中添加计算列

python - 使用Python数组存储数据(HAR-RV信用风险模型实现)

python - 在 FastAPI 中使用 Annotated 会忽略 Query 中设置的规则

python - 合并两个在字典中具有相同项目的列表

python - 在循环中更新一行,然后在下一次迭代中使用更新后的值