使用pandas读取excel文件config;文件中的cardlist页面中,有约132条会员卡信息;
CONFIG = "config.xlsx",文件中数据格式:
目的:获取”卡号“一列后,在需要的时候,判断某个字符串类型的卡号是否在config文件存在?
1、出现的问题: "66601854"这个卡号是在文件中的,但是使用如下代码,却得到False的反馈
cardlist = pd.read_excel(CONFIG, sheet_name="cardlist",index=False)
df = cardlist.loc[:,"卡号"]
print(df)
使用了以下几种方式,均得不到正确的结果(测试卡号均在文件中)
print("66601251" in df) : 结果 False
print("66601251" in df.tolist()) : 结果 False
print("99001063" in df.tolist()) : 结果 False
print("66601854” in df.tolist()) : 结果 False
考虑到可能是数据类型的问题后,使用如下方式转换类型后,结果却十分诡异:printf(df)打印出来的几个卡号,是可以得到正确结果,但是没有打印出来的卡号,却查询不到:
print("66601251" in str(df)) : 结果 True
print("66601854" in str(df)) : 结果 False
--------------------------------------------------------------------------------------
2、解决方案:
最后,在多方求证后,确认是数据类型的问题,但是转换类型的方式不正确,但是转换的方式,需要以DataFram整体来进行转换:
方式1:在使用的时候,转换为类型为str,并使用tolist()函数;
df = cardlist.loc[:,"卡号"]
print("66601854" in df.astype(str).tolist())
方式2:在获取数据时,即刻将数据类型进行转换:
df = cardlist.loc[:,"卡号"].astype(str)
print("66601854" in df.tolist())