EXcel 对比两列特定的值

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

img


老师们。这是excel 两列。STRING 对应的字符串 NUMBER 对应数值 DATETIME 对应时间 这是正确的对应格式。现在我想筛选下不正确的对应关系。使用IF 函数写吗 求解答

if不是函数喔
思路可以这样:

  • 先使用字典类型把正确的对应关系写出来
  • 再将excel的数据读入
  • 然后使用if语句,一行一行进行判断,是否符合字典里面记录的正确关系
  • 将不正确的输出出来

首先你需要把excel 读入python里面,下面假设你已经读入了这个excel为dataframe,并命名为 data,两列的列名分别为type类型,代码如下。

key = {"DATETIME":"时间",
           "NUMBER":"数值",
           "STRING":"字符串"}
f_data = data['type'].apply(lambda x: key[x]) == data['类型']   
ind = f_data[f_data == False].index   # 不满足对应关系的数据的index
print(data.iloc[ind])  # 输出所有不满足的数据