根据我想要不断过滤我的Pandas数据框
,我有4个列表categoryList=['Parameter1', 'Parameter1', 'Parameter2', 'Parameter2']
conditionList=['b1', 'b41', 'm1', 'm2']
conditionDescList=['>', 'btn', '<=', 'btn']
conditionParamList=['1000', '2:3', '0.5', '0.1:0.3']
现在我正在尝试使用以下代码根据df_custid_marker
df_custid_bp
,categoryList
)的行
k =0
for i in conditionDescList:
if(categoryList[k]=='Parameter1'):
if(i=='btn'):
arrValues=conditionParamList[k].split(":")
minVal=arrValues[0]
maxVal=arrValues[1]
df_custid_marker=df_custid_marker[(df_custid_marker[conditionList[k]] > minVal) & (df_custid_marker[conditionList[k]] < maxVal)]
elif(i=='>'):
df_custid_marker=df_custid_marker[(df_custid_marker[conditionList[k]] > conditionParamList[k])]
elif(i=='<'):
df_custid_marker=df_custid_marker[(df_custid_marker[conditionList[k]] < conditionParamList[k])]
elif(i=='<='):
df_custid_marker=df_custid_marker[(df_custid_marker[conditionList[k]] < conditionParamList[k]) | (df_custid_marker[conditionList[k]] == conditionParamList[k])]
elif(i=='>='):
df_custid_marker=df_custid_marker[(df_custid_marker[conditionList[k]] > conditionParamList[k]) | (df_custid_marker[conditionList[k]] == conditionParamList[k])]
else:
df_custid_marker=df_custid_marker[(df_custid_marker[conditionList[k]] == conditionParamList[k])]
k+=1
k =0
for i in conditionDescList:
if(categoryList[k]=='Parameter2'):
if(i=='btn'):
arrValues=conditionParamList[k].split(":")
minVal=arrValues[0]
maxVal=arrValues[1]
df_custid_bp=df_custid_bp[(df_custid_bp[conditionList[k]] > minVal) & (df_custid_bp[conditionList[k]] < maxVal)]
elif(i=='>'):
df_custid_bp=df_custid_bp[(df_custid_bp[conditionList[k]] > conditionParamList[k])]
elif(i=='<'):
df_custid_bp=df_custid_bp[(df_custid_bp[conditionList[k]] < conditionParamList[k])]
elif(i=='<='):
df_custid_bp=df_custid_bp[(df_custid_bp[conditionList[k]] < conditionParamList[k]) | (df_custid_bp[conditionList[k]] == conditionParamList[k])]
elif(i=='>='):
df_custid_bp=df_custid_bp[(df_custid_bp[conditionList[k]] > conditionParamList[k]) | (df_custid_bp[conditionList[k]] == conditionParamList[k])]
else:
df_custid_bp=df_custid_bp[(df_custid_bp[conditionList[k]] == conditionParamList[k])]
k+=1
现在我收到<=
df_custid_marker=df_custid_marker[(df_custid_marker[conditionList[k]] < conditionParamList[k]) | (df_custid_marker[conditionList[k]] == conditionParamList[k])]
raise TypeError("invalid type comparison")
答案 0 :(得分:1)
问题是数据框列类型为string
,列表为 else if (function == "transfer")
{
myDataAdapter.SelectCommand = new MySqlCommand("select * from test.auth where id = '" + Int32.Parse(materialSingleLineTextField3.Text) + "' ;", myConn);
MySqlDataReader reader = myDataAdapter.SelectCommand.ExecuteReader();
Int32 count = 0;
while (reader.Read())
{
count += 1;
}
if (count == 1)
{
myDataAdapter.SelectCommand = new MySqlCommand("update test.auth SET bits = bits + '" + double.Parse(materialSingleLineTextField4.Text) + "' where id = '" + Int32.Parse(materialSingleLineTextField3.Text) + "' ;", myConn);
materialFlatButton6.Text = "Bits have been transferred!";
}
else
{
materialFlatButton6.Text = "No Token was found!";
}
}
} catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}