self.myDataFrame = pd.read_csv("myCSV.csv")
def filterValues(self):
if self.h02_1_lineEdit != "":
self.h02_1_flag = 1
self.filter_h02_1 = (self.myDataFrame['H:02-1'] == self.h02_1_lineEdit.text())
else:
self.h02_1_flag = 0
if self.h02_x_lineEdit != "":
self.h02_x_flag = 1
self.filter_h02_x = (self.myDataFrame['H:02-X'] == self.h02_x_lineEdit.text())
else:
self.h02_x_flag = 0
# it will take 6 filters in here
print(self.myDataFrame[self.filter_h02_1 & self.filter_h02_x])
大家好,我有一个基本的Python应用程序,可以在PyQt5应用程序上使用DF。如您所见,我从csv文件中读取了一些数据。我想根据写在QLineEdit上的文本过滤一些值。但是,如果QLineEdit为空,我不想过滤它。但是我不知道怎么做。在其他应用程序上,我可以(而且我确实)通过使用标志来解决这个问题。i、 e Sql应用程序。但在这些应用程序中,我们使用查询作为字符串。所以这很容易使用
我这里真正的问题是多重过滤,同样,如果每一行编辑(我使用的6行编辑)或一行编辑都过滤了,那么就没有问题。但是,例如,我不想使用self.filter\u h02\u x并将其保留为空。这就是我坚持的地方。如果需要,我可以上传所有的代码,但我想你明白这个问题
澄清我的问题; 如果我们可以使用self.myDataFrame作为我可以使用的字符串
self.mainFilter = "self.myDataFrame[" # for definition
...
self.filter_h02_1 = "(self.myDataFrame['H:02-1'] == self.h02_1_lineEdit.text())"
...
if self.h02_1_flag = 1:
self.myDataFrame += self.filter_h02_1 + "]"
print(self.mainFilter)
但这不是字符串,这是定义。如果我试着一个接一个地定义它,有6个!选项
如果不想筛选,可以使用所有
True
的掩码相关问题 更多 >
编程相关推荐