python pandas常用的查询

一些常用的Pandas查询记录

1.全文搜索

filterdataFrame= dataFrame.select_dtypes(include='object')
findVal = np.column_stack(filterdataFrame[col].str.contains('查询的字符串', na=False) for col in filterdataFrame)
findSerise = filterdataFrame.loc[findVal.any(axis=1)]

这里简单说一下逻辑
dataFrame.select_dtypes(include=‘object’)先找出是字符串文本的Serise,float数字类型是没有contains方法的;, dataFrame[col].str.contains(‘查询的字符串’, na=False) for col in dataFrame 这段代码 循环查找表中Serise(列)是否包含指定字符串,这个返回结果就是((True,False,False),(True,False,False)),再通过np.column_stack合并[[True, True], [False,False],[False,False]],显示True就代表是相同字符串,再通过loc定位到指定(行)

2.保存或追加数据


combineDataFrame
with pd.ExcelWriter(savePath+'xxxx.xlsx') as writer:
	combineDataFrame.to_excel(writer, sheet_name="1sheet",index=False)
	combineDataFrame.to_excel(writer, sheet_name="2sheet",index=False)

# 追加相同sheet数据
with pd.ExcelWriter(savePath, mode='a', engine="openpyxl", if_sheet_exists="overlay") as writer
		oldSheetDataFrame_1 = pd.read_excel(writer, sheet_name='sheet1')
        oldSheetDataFrame_2 = pd.read_excel(writer, sheet_name='sheet2')
        combineWhBillDataFrame.to_excel(writer, startrow=oldSheetDataFrame_1.shape[0] + 1, header=False, sheet_name='sheet1', index=False)
        combineRelDataFrame.to_excel(writer, startrow=oldSheetDataFrame_2.shape[0] + 1, header=False, sheet_name='sheet2', index=False)
# if_sheet_exists: overlay 不删除sheet表内容,写入,如果不规定startrow开始写入行数就会覆盖之前的数据
#				   replace 删除sheet,重新创建sheet替换

index=false,导出的excel就不会把索引index也一同导入进去,在操作数据index可以不用去掉,这样也方便我们去观察数据。
注意:pandas1.2.0之前 pd.ExcelWriter中engine不能混用,xlsxwriter(默认)、openpyxl二选一
pandas1.4之后 会根据文件后缀选用不同的engine, xlsx -> openpyxl , xls -> xlswriter

。。。。后续持续更新

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值