我有一个几百行和十几列的数据帧.我需要创建一个新列,其中每个单元格都是TrueFalse,这将通过将相邻的值与矩阵中的最大值进行比较来确定,该矩阵由来自原始值不属于的行和列的值组成.

我try 通过pandasNumPy创建矩阵中的值列表.我还try 使用openpyxl和Excel中的数据来编制该列表.我只是想不出如何引用不是当前行的行.

需要明确的是,我希望根据单元格E1中的6大于A2:D5矩阵中的任何值的事实来生成单词True in column F:

enter image description here

整个F列应该填满TrueFalse(except near the end where there aren't enough values, which will not matter).

编辑以显示实际数据:

{'Unnamed: 0': [datetime.datetime(2022, 2, 14, 0, 0), datetime.datetime(2022, 2, 8, 0, 0), datetime.datetime(2022, 2, 16, 0, 0), datetime.datetime(2022, 2, 9, 0, 0), datetime.datetime(2022, 2, 7, 0, 0)], 
'A': [86.3600006103515, 91.1299972534179, 87.9199981689453, 99.4199981689453, 89.8399963378906], 
'B': [86.3600006103515, 91.1299972534179, 87.9199981689453, 99.4199981689453, 89.8399963378906], 
'C': [93.7399978637695, 92.2099990844726, 93.4599990844726, 99.6900024414062, 90.370002746582], 
'D': [85.3799972534179, 89.0100021362304, 86.5299987792968, 91.6999969482421, 85.3199996948242], 
'E': [92.870002746582, 89.8499984741211, 87.8399963378906, 98.1800003051757, 85.6600036621093], 
'F': [91.8566665649414, 88.8299967447916, 87.6700007120768, 93.4633305867513, 88.3333307902018], 
'G': [93.2239990234375, 88.2079986572265, 90.4440002441406, 91.1099975585937, 87.0139999389648], 
'H': [90.1189994812011, 88.8899993896484, 90.7769989013672, 89.4299995422363, 89.4699996948242], 
'I': [91.8989994049072, 93.9099994659423, 91.107999420166, 93.5399993896484, 94.8799995422363], 
'J': [98.1313329060872, 101.261666107177, 95.9039995829264, 100.749666086832, 102.087999471028]}

推荐答案

这最终成为了一个奏效的解决方案.注:我最终对帖子中的原始请求进行了更改,但任何试图解决同样问题的人都应该能够通过类似以下内容来实现:

from openpyxl.formula.translate import Translator

book["N2"] = '=IF(M2=1,IF((C3*1.01)<MAX(C3:F5),"True","False"),"")'
for i in range(3,300):
    this_cell = "N" + str(i)
    book[this_cell] = Translator('=IF(M2=1,IF((C3*1.01)<MAX(C3:F5),"True","False"),"")', origin = 'N2')\
        .translate_formula(this_cell)

Python相关问答推荐

如何确保Flask应用程序管理面板中的项目具有单击删除功能?

手动为pandas中的列上色

Pydantic:如何将对象列表表示为dict(将列表序列化为dict)

LAB中的增强数组

使用polars .滤镜进行切片速度比pandas .loc慢

比较两个数据帧并并排附加结果(获取性能警告)

如何将ctyles.POINTER(ctyles.c_float)转换为int?

韦尔福德方差与Numpy方差不同

根据另一列中的nan重置值后重新加权Pandas列

在Python Attrs包中,如何在field_Transformer函数中添加字段?

如何让Flask 中的请求标签发挥作用

Python键入协议默认值

如果条件不满足,我如何获得掩码的第一个索引并获得None?

如果值发生变化,则列上的极性累积和

Python—从np.array中 Select 复杂的列子集

无法在Docker内部运行Python的Matlab SDK模块,但本地没有问题

在ubuntu上安装dlib时出错

Python逻辑操作作为Pandas中的条件

(Python/Pandas)基于列中非缺失值的子集DataFrame

OpenGL仅渲染第二个三角形,第一个三角形不可见