货物数据处理pandas版

news2024/11/22 16:45:06

1求和

from openpyxl import load_workbook
import pandas as pd

def print_hi(name):
    # Use a breakpoint in the code line below to debug your script.
    print(f'Hi, {name}')  # Press Ctrl+F8 to toggle the breakpoint.


# Press the green button in the gutter to run the script.
if __name__ == '__main__':
    filePath1 = './src/原始数据精修.xlsx'
    df1 = pd.read_excel(filePath1, sheet_name='销售明细')
    index_list = ['部门名称', '年度名称', '季节名称', '商品代码', '商品名称', '品牌名称', '品类名称', '颜色名称']

    # 求和方法二,需将文本的列指定为索引
    df1 = df1.set_index(index_list)
    df1['合计'] = df1.apply(lambda x: x.sum(), axis=1)
    filePath2 = './src/处理结果精修.xlsx'
    #重置索引,防止单元格合并
    df1 = df1.reset_index()
    df1.to_excel(filePath2, sheet_name="new_sheet", index=False, na_rep=0, inf_rep=0)
    print(df1)

2.去除季节年度进行聚类

	#去除年度和季节进行聚类
    df2 = pd.read_excel(filePath2, sheet_name='单款排名')
    df2.pop('年度名称')
    df2.pop('季节名称')
    index_list = ['部门名称', '商品代码', '商品名称', '品牌名称', '品类名称', '颜色名称']
    value_list = ['0M','1L','1XL','27','28','29','2XL','30','3XL','4XL','5XL','6XL','S','均','合计']
    #使用透视表聚合
    df2 = df2.pivot_table(index= index_list,values=value_list,aggfunc='sum')
    # 重置索引,防止单元格合并
    df2 = df2.reset_index()
    #将合计列放到最后面
    #dataframe中某一列放到最后,并改名为销售明细
    df2['销售明细'] = df2.pop('合计')
    df2.to_excel(filePath2, sheet_name="单款排名", index=False, na_rep=0, inf_rep=0)

3完整数据处理过程代码

from openpyxl import load_workbook
import pandas as pd

def print_hi(name):
    # Use a breakpoint in the code line below to debug your script.
    print(f'Hi, {name}')  # Press Ctrl+F8 to toggle the breakpoint.


# Press the green button in the gutter to run the script.
if __name__ == '__main__':
    filePath1 = './src/原始数据精修.xlsx'
    # 加载工作簿
    wb = load_workbook(filePath1)
    # 获取sheet页,修改第一个sheet页面为
    name1 = wb.sheetnames[0]
    ws1 = wb[name1]
    ws1.title = "销售明细"
    wb.save(filePath1)

    #销售明细
    df1 = pd.read_excel(filePath1, sheet_name='销售明细')
    index_list = ['部门名称', '年度名称', '季节名称', '商品代码', '商品名称', '品牌名称', '品类名称', '颜色名称']

    # 求和方法二,需将文本的列指定为索引
    df1 = df1.set_index(index_list)
    df1['合计'] = df1.apply(lambda x: x.sum(), axis=1)
    filePath2 = './src/处理结果精修.xlsx'
    #重置索引,防止单元格合并
    df1 = df1.reset_index()
    df1.to_excel(filePath2, sheet_name="new_sheet", index=False, na_rep=0, inf_rep=0)

    #单款排名
    #去除年度和季节进行聚类
    df2 = df1.copy()
    df2.pop('年度名称')
    df2.pop('季节名称')
    index_list = ['部门名称', '商品代码', '商品名称', '品牌名称', '品类名称', '颜色名称']
    value_list = ['0M','1L','1XL','27','28','29','2XL','30','3XL','4XL','5XL','6XL','S','均','合计']
    #使用透视表聚合
    df2 = df2.pivot_table(index= index_list,values=value_list,aggfunc='sum')
    # 重置索引,防止单元格合并
    df2 = df2.reset_index()
    #将合计列放到最后面
    #dataframe中某一列放到最后,并改名为销售明细
    df2['销售明细'] = df2.pop('合计')
    df2.sort_values(by="销售明细", axis=0, ascending=False, inplace=True)

    #品牌排名
    df3 = df1.copy()
    # 使用透视表聚合
    df3 = df3.pivot_table(index='品牌名称', values='合计', aggfunc='sum')
    # 重置索引,防止单元格合并
    df3 = df3.reset_index()
    # 将合计列放到最后面
    # dataframe中某一列放到最后,并改名为销售明细
    df3['销售明细'] = df3.pop('合计')
    df3.sort_values(by="销售明细", axis=0, ascending=False, inplace=True)

    #年度销售
    df4 = df1.copy()
    # 使用透视表聚合
    print(df4)
    df4 = df4.pivot_table(index=['年度名称', '季节名称'], values='合计', aggfunc='sum')
    # 重置索引,防止单元格合并
    df4 = df4.reset_index()
    # 将合计列放到最后面
    # dataframe中某一列放到最后,并改名为销售明细
    df4['销售明细'] = df4.pop('合计')
    df4.sort_values(by="销售明细", axis=0, ascending=False, inplace=True)

    #季节销售
    df5 = df1.copy()
    #使用透视表聚合
    df5 = df5.pivot_table(index=['季节名称'], values='合计', aggfunc='sum')
    # 重置索引,防止单元格合并
    df5 = df5.reset_index()
    df5['销售明细'] = df5.pop('合计')
    df5.sort_values(by="销售明细", axis=0, ascending=False, inplace=True)

    #品类排名
    df6 = df1.copy()
    # 使用透视表聚合
    df6 = df6.pivot_table(index=['品类名称'], values='合计', aggfunc='sum')
    # 重置索引,防止单元格合并
    df6 = df6.reset_index()
    df6['销售明细'] = df6.pop('合计')
    df6.sort_values(by="销售明细", axis=0, ascending=False, inplace=True)
    # print(df1)
    # 加载工作簿
    filePath2 = './src/处理结果精修.xlsx'
    wb = load_workbook(filePath2)


    #客户周销
    df7 = pd.DataFrame({'商店名称':[], '销售数量':[]})
    #创建表
    ws2 = wb.create_sheet("单款排名")
    ws3 = wb.create_sheet("品牌排名")
    ws4 = wb.create_sheet("年度销售")
    ws5 = wb.create_sheet("季节销售")
    ws6 = wb.create_sheet("品类排名")
    ws7 = wb.create_sheet("客户周销")
    wb.save(filePath2)


    #将生成的工作表导入到程序中
    result_sheet = pd.ExcelWriter(filePath2, engine='openpyxl')  # 先定义要存入的文件名xxx,然后分别存入xxx下不同的sheet
    df1.to_excel(result_sheet, "销售明细", index=False, na_rep=0, inf_rep=0)
    df2.to_excel(result_sheet, "单款排名", index=False, na_rep=0, inf_rep=0)
    df3.to_excel(result_sheet, "品牌排名", index=False, na_rep=0, inf_rep=0)
    df4.to_excel(result_sheet, "年度销售", index=False, na_rep=0, inf_rep=0)
    df5.to_excel(result_sheet, "季节销售", index=False, na_rep=0, inf_rep=0)
    df6.to_excel(result_sheet, "品类排名", index=False, na_rep=0, inf_rep=0)
    df7.to_excel(result_sheet, "客户周销", index=False, na_rep=0, inf_rep=0)
    # 这步不能省,否则不生成文件
    result_sheet._save()

初始文件格式

在这里插入图片描述

最终结果,处理完成

在这里插入图片描述

4格式处理

通过openpyxl进行格式处理

#销售明细
# 加载工作簿
wb1 = load_workbook('Mytest.xlsx')
# 获取sheet页
ws2 = wb1['销售明细']

示例

from openpyxl import Workbook
from openpyxl.styles import Font

# 创建一个新的工作簿和工作表
workbook = Workbook()
sheet = workbook.active

# 创建一个字体对象并设置属性
font = Font(
    name='Arial',   # 字体名称
    size=12,        # 字体大小
    bold=True,      # 是否加粗
    italic=True,    # 是否斜体
    underline='single',  # 下划线类型:single、double、none等
    strike=True,    # 是否有删除线
    color='FF0000'  # 字体颜色,十六进制RGB值
)

# 在单元格A1中应用字体样式
sheet['A1'].font = font
sheet['A1'].value = 'Hello, World!'

# 保存工作簿
workbook.save('E:\\UserData\\Desktop\\font_example.xlsx')

销售明细的格式代码

	# 销售明细
    # 加载工作簿
    wb1 = load_workbook(filePath2)
    # 获取sheet页
    ws1 = wb1['销售明细']
    #设置字体
    # 创建一个字体对象并设置属性
    font = Font(
        name='微软雅黑',  # 字体名称
        size=18,  # 字体大小
        bold=True,  # 是否加粗
        italic=False,  # 是否斜体
        underline='none',  # 下划线类型:single、double、none等
        strike=False,  # 是否有删除线
        color='000000', # 字体颜色,十六进制RGB值
        vertAlign='baseline'
    )
    dept_name = ws1['A2'].value
    ws1.insert_rows(0, 1) #插入一行
    min_row = ws1.min_row
    max_row = ws1.max_row
    min_col = ws1.min_column
    max_col = ws1.max_column


    #设置单元格格式
    # 调整行高
    ws1.row_dimensions[1].height = 24
    #合并单元格
    # 需要合并的左上方和右下方单元格坐标
    ws1.merge_cells(start_row=1, start_column=1, end_row=1, end_column=max_col)
    # 在单元格A1中应用字体样式
    ws1['A1'].font = font
    ws1['A1'].value = dept_name + '销售明细'
    # 设置字体居中
    ws1['A1'].alignment = Alignment(horizontal='center', vertical='center')
    #设置颜色
    #行
    for cell in ws1['2']:
        cell.fill = PatternFill("solid", fgColor="FFFF00")
        cell.border = Border(left=Side(style='thin'), bottom=Side(style='thin'), right=Side(style='thin'), top=Side(style='thin'))
    #列
    for cell in ws1[number_to_column(max_col)]:
        cell.fill = PatternFill("solid", fgColor="FFFF00")
        cell.border = Border(left=Side(style='thin'), bottom=Side(style='thin'), right=Side(style='thin'),
                             top=Side(style='thin'))
    #最后一行
    # 行
    for cell in ws1[max_row+1]:
        cell.fill = PatternFill("solid", fgColor="FFFF00")
        cell.border = Border(left=Side(style='thin'), bottom=Side(style='thin'), right=Side(style='thin'),
                                 top=Side(style='thin'))
    # 调整行高
    ws1.row_dimensions[max_row+1].height = 24
    # 合并单元格
    # 需要合并的左上方和右下方单元格坐标
    ws1.merge_cells(start_row=max_row+1, start_column=1, end_row=max_row+1, end_column=8)
    cell = ws1.cell(column=1, row=max_row+1)
    cell.font = font
    cell.value = '合计'
    # 设置字体居中
    cell.alignment = Alignment(horizontal='center', vertical='center')
    # 保存工作簿
    wb1.save(filePath2)

将列序号转变为excel序号

import string

def number_to_column(n):
    """Convert a number to the corresponding column letter in Excel"""
    column = ""
    while n > 0:
        n -= 1
        column = string.ascii_uppercase[n % 26] + column
        n //= 26
    return column

# Example usage
print(number_to_column(1))  # Output: "A"

完整代码

from openpyxl import load_workbook
import pandas as pd
from openpyxl.styles import *
import string
def print_hi(name):
    # Use a breakpoint in the code line below to debug your script.
    print(f'Hi, {name}')  # Press Ctrl+F8 to toggle the breakpoint.
def number_to_column(n):
    """Convert a number to the corresponding column letter in Excel"""
    column = ""
    while n > 0:
        n -= 1
        column = string.ascii_uppercase[n % 26] + column
        n //= 26
    return column

# Press the green button in the gutter to run the script.
if __name__ == '__main__':
    filePath1 = './src/原始数据精修.xlsx'
    # 加载工作簿
    wb = load_workbook(filePath1)
    # 获取sheet页,修改第一个sheet页面为
    name1 = wb.sheetnames[0]
    ws1 = wb[name1]
    ws1.title = "销售明细"
    wb.save(filePath1)

    #销售明细
    df1 = pd.read_excel(filePath1, sheet_name='销售明细')
    index_list = ['部门名称', '年度名称', '季节名称', '商品代码', '商品名称', '品牌名称', '品类名称', '颜色名称']

    # 求和方法二,需将文本的列指定为索引
    df1 = df1.set_index(index_list)
    df1['合计'] = df1.apply(lambda x: x.sum(), axis=1)
    filePath2 = './src/处理结果精修.xlsx'
    #重置索引,防止单元格合并
    df1 = df1.reset_index()
    df1.to_excel(filePath2, sheet_name="new_sheet", index=False, na_rep=0, inf_rep=0)

    #单款排名
    #去除年度和季节进行聚类
    df2 = df1.copy()
    df2.pop('年度名称')
    df2.pop('季节名称')
    index_list = ['部门名称', '商品代码', '商品名称', '品牌名称', '品类名称', '颜色名称']
    value_list = ['0M','1L','1XL','27','28','29','2XL','30','3XL','4XL','5XL','6XL','S','均','合计']
    #使用透视表聚合
    df2 = df2.pivot_table(index= index_list,values=value_list,aggfunc='sum')
    # 重置索引,防止单元格合并
    df2 = df2.reset_index()
    #将合计列放到最后面
    #dataframe中某一列放到最后,并改名为销售明细
    df2['销售明细'] = df2.pop('合计')
    df2.sort_values(by="销售明细", axis=0, ascending=False, inplace=True)

    #品牌排名
    df3 = df1.copy()
    # 使用透视表聚合
    df3 = df3.pivot_table(index='品牌名称', values='合计', aggfunc='sum')
    # 重置索引,防止单元格合并
    df3 = df3.reset_index()
    # 将合计列放到最后面
    # dataframe中某一列放到最后,并改名为销售明细
    df3['销售明细'] = df3.pop('合计')
    df3.sort_values(by="销售明细", axis=0, ascending=False, inplace=True)

    #年度销售
    df4 = df1.copy()
    # 使用透视表聚合
    print(df4)
    df4 = df4.pivot_table(index=['年度名称', '季节名称'], values='合计', aggfunc='sum')
    # 重置索引,防止单元格合并
    df4 = df4.reset_index()
    # 将合计列放到最后面
    # dataframe中某一列放到最后,并改名为销售明细
    df4['销售明细'] = df4.pop('合计')
    df4.sort_values(by="销售明细", axis=0, ascending=False, inplace=True)

    #季节销售
    df5 = df1.copy()
    #使用透视表聚合
    df5 = df5.pivot_table(index=['季节名称'], values='合计', aggfunc='sum')
    # 重置索引,防止单元格合并
    df5 = df5.reset_index()
    df5['销售明细'] = df5.pop('合计')
    df5.sort_values(by="销售明细", axis=0, ascending=False, inplace=True)

    #品类排名
    df6 = df1.copy()
    # 使用透视表聚合
    df6 = df6.pivot_table(index=['品类名称'], values='合计', aggfunc='sum')
    # 重置索引,防止单元格合并
    df6 = df6.reset_index()
    df6['销售明细'] = df6.pop('合计')
    df6.sort_values(by="销售明细", axis=0, ascending=False, inplace=True)
    # print(df1)
    # 加载工作簿
    filePath2 = './src/处理结果精修.xlsx'
    wb = load_workbook(filePath2)


    #客户周销
    df7 = pd.DataFrame({'商店名称':[], '销售数量':[]})
    #创建表
    ws2 = wb.create_sheet("单款排名")
    ws3 = wb.create_sheet("品牌排名")
    ws4 = wb.create_sheet("年度销售")
    ws5 = wb.create_sheet("季节销售")
    ws6 = wb.create_sheet("品类排名")
    ws7 = wb.create_sheet("客户周销")
    wb.save(filePath2)


    #将生成的工作表导入到程序中
    result_sheet = pd.ExcelWriter(filePath2, engine='openpyxl')  # 先定义要存入的文件名xxx,然后分别存入xxx下不同的sheet
    df1.to_excel(result_sheet, "销售明细", index=False, na_rep=0, inf_rep=0)
    df2.to_excel(result_sheet, "单款排名", index=False, na_rep=0, inf_rep=0)
    df3.to_excel(result_sheet, "品牌排名", index=False, na_rep=0, inf_rep=0)
    df4.to_excel(result_sheet, "年度销售", index=False, na_rep=0, inf_rep=0)
    df5.to_excel(result_sheet, "季节销售", index=False, na_rep=0, inf_rep=0)
    df6.to_excel(result_sheet, "品类排名", index=False, na_rep=0, inf_rep=0)
    df7.to_excel(result_sheet, "客户周销", index=False, na_rep=0, inf_rep=0)
    # 这步不能省,否则不生成文件
    result_sheet.save()

    # 销售明细
    # 加载工作簿
    wb1 = load_workbook(filePath2)
    # 获取sheet页
    ws1 = wb1['销售明细']
    #设置字体
    # 创建一个字体对象并设置属性
    font = Font(
        name='微软雅黑',  # 字体名称
        size=18,  # 字体大小
        bold=True,  # 是否加粗
        italic=False,  # 是否斜体
        underline='none',  # 下划线类型:single、double、none等
        strike=False,  # 是否有删除线
        color='000000', # 字体颜色,十六进制RGB值
        vertAlign='baseline'
    )
    dept_name = ws1['A2'].value
    ws1.insert_rows(0, 1) #插入一行
    min_row = ws1.min_row
    max_row = ws1.max_row
    min_col = ws1.min_column
    max_col = ws1.max_column


    #设置单元格格式
    # 调整行高
    ws1.row_dimensions[1].height = 24
    #合并单元格
    # 需要合并的左上方和右下方单元格坐标
    ws1.merge_cells(start_row=1, start_column=1, end_row=1, end_column=max_col)
    # 在单元格A1中应用字体样式
    ws1['A1'].font = font
    ws1['A1'].value = dept_name + '销售明细'
    # 设置字体居中
    ws1['A1'].alignment = Alignment(horizontal='center', vertical='center')
    #设置颜色
    #行
    for cell in ws1['2']:
        cell.fill = PatternFill("solid", fgColor="FFFF00")
        cell.border = Border(left=Side(style='thin'), bottom=Side(style='thin'), right=Side(style='thin'), top=Side(style='thin'))
    #列
    for cell in ws1[number_to_column(max_col)]:
        cell.fill = PatternFill("solid", fgColor="FFFF00")
        cell.border = Border(left=Side(style='thin'), bottom=Side(style='thin'), right=Side(style='thin'),
                             top=Side(style='thin'))
    #最后一行
    # 行
    for cell in ws1[max_row+1]:
        cell.fill = PatternFill("solid", fgColor="FFFF00")
        cell.border = Border(left=Side(style='thin'), bottom=Side(style='thin'), right=Side(style='thin'),
                                 top=Side(style='thin'))
    # 调整行高
    ws1.row_dimensions[max_row+1].height = 24
    # 合并单元格
    # 需要合并的左上方和右下方单元格坐标
    ws1.merge_cells(start_row=max_row+1, start_column=1, end_row=max_row+1, end_column=8)
    cell = ws1.cell(column=1, row=max_row+1)
    cell.font = font
    cell.value = '合计'
    # 设置字体居中
    cell.alignment = Alignment(horizontal='center', vertical='center')
    # 保存工作簿
    wb1.save(filePath2)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1317752.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue中2种取值的方式

1.url是这种方式的:http://localhost:3000/user/1 取得参数的方式为:this.$route.params.id 2.url为get方式用?拼接参数的:http://localhost:3000/user?phone131121123&companyId2ahttp://localhost:3000/ 取得参数值的方式…

HTTP代理神器Fiddler的配置

HTTP代理神器Fiddler Fiddler的简介 Fiddler是位于客户端和服务器端之间的代理,也是目前最常用的抓包工具之一 。它能够记录客户端和服务器之间的所有 请求,可以针对特定的请求,分析请求数据、设置断点、调试web应用、修改请求的数据&#…

不是生活有意思,是你热爱生活它才有意思

明制汉服的设计 同样是一款很重工的外套 细节上也是做到了极致 顺毛毛呢面料 领口袖口拼接仿貂毛环保毛条 前胸欧根纱刺绣圆形布 袖子贴民族风珠片刺绣织带 门襟搭配金属子母扣,真盘扣设计 时尚经典,搭配马面裙孩子穿上 真的很有气质奢华富贵 …

Android hwcomposer服务启动流程

Android hwcomposer服务启动流程 客户端 binder远程调用 服务端 surfaceflinger --binder--> hwcomposer .hal文件编译时生成支持binder进程间远程调用通信的cpp文件 在out/soong/.intermediates/hardware/interfaces/graphics/composer/2.1/ 目录下找…

时序预测 | Python实现GRU电力需求预测

时序预测 | Python实现GRU电力需求预测 目录 时序预测 | Python实现GRU电力需求预测预测效果基本描述程序设计参考资料预测效果 基本描述 该数据集因其每小时的用电量数据以及 TSO 对消耗和定价的相应预测而值得注意,从而可以将预期预测与当前最先进的行业预测进行比较。使用该…

【如何提取React项目中的公共模块,多个项目共用】

文章目录 目录 前言 一、创建公共模块 二、初始化公共模块 三、给公共模块添加内容 四、添加对公共模块的依赖 五、使用公共模块里的资源 后记 前言 在工作中经常会遇到这样的需求,有个React项目,代码分为客户端,管理端两份&#xff…

04 python函数

4.1 函数的快速开发体验 """ 演示,快速体验函数的开发和使用 """#需求,统计字符串的长度,不使用内置函数len()str1 itheima str2 itcast str3 python#定义一个计数的变量 count 0 for i in str1:count 1…

【高级网络程序设计】Block1总结

这一个Block分为四个部分,第一部分是Introduction to Threads and Concurrency ,第二部分是Interruptting and Terminating a Thread,第三部分是Keep Threads safety:the volatile variable and locks,第四部分是Beyon…

RabbitMQ不公平分发问题分析及问题解决

1.不公平分发 1.1 不公平分发策略是什么? 在 RabbitMQ 中,不公平分发(Unfair Dispatch)是指当多个消费者(Consumers)同时订阅同一个队列(Queue)时,消息的分发机制是不公…

把文化注入品牌,五粮液荣获“全国企业文化优秀成果特等奖”

执笔 | 萧 萧 编辑 | 扬 灵 12月15日,以“塑造优秀企业文化,凝聚企业发展力量”为主题的全国企业文化年会(2023)首次在长江首城、中国酒都、中国动力电池之都宜宾盛大举行。 凭借“弘扬和美文化,谱写高质量发展新篇章”成果…

2018年AMC8数学竞赛真题的典型考点和详细解析

从战争中学习战争最有效。前几天,六分成长分析了2023年、2022年、2020、2019年的AMC8的典型考题、考点和详细答案解析。今天继续为大家分享2018年的AMC8的五道典型考题。 欢迎您查看历史文章了解之前各年的真题解析,本系列会持续更新,直到大家…

Linux:进程地址空间

目录 1.程序地址空间 2.进程地址空间 1.程序地址空间 我们在讲C/C语言的时候,32位平台下,我们见过这样的空间布局图 我们来验证一下这张图的正确性: int un_gval;int init_gval100;int main(int argc, char* argv[],char* env[]){//代码…

Nat. Mach. Intell. | 通过深度神经网络联合建模多个切片来构建一个三维全生物体空间图谱

今天为大家介绍的是来自Angela Ruohao Wu 和Can Yang团队的一篇论文。空间转录组学(ST)技术正在革新探索组织空间结构的方式。目前,ST数据分析通常局限于单个二维(2D)组织切片,这限制了我们理解在三维&…

【ArkTS】入门

代码结构分析 struct Index{ } 「自定义组件:可复用的UI单元」 xxx 「装饰器:用来装饰类结构、方法、变量」 Entry 标记当前组件是入口组件(该组件可被独立访问,通俗来讲:它自己就是一个页面)Component 用…

【后端学前端】第四天 css动画 垂直轮播效果(css变量、位移缩放动画、动画延迟)

1、学习信息 视频地址&#xff1a;css动画 垂直轮播效果&#xff08;css变量、位移缩放动画、动画延迟&#xff09;_哔哩哔哩_bilibili 2、源码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title…

QT for Android安卓编译环境搭建+首次编译3个大坑

1、安装 编译环境能否搭建成功&#xff0c;主要是看各个依赖软件的版本是否匹配。依赖的软件有3个&#xff1a;JDK、安卓SDK、安卓NDK。 我的qt版本是5.14.1&#xff0c;我亲测以下版本可以成功让编译安卓&#xff1a; QT5.14 JDK1.8.0 安卓SDK26.1 安卓NDK20.1 在QT-&g…

爬虫 scrapy ——scrapy shell调试及下载当当网数据(十一)

目录 一、scrapy shell 1.什么是scrapy shell&#xff1f; 2.安装 ipython 3.使用scrapy shell 二、当当网案例 1.在items.py中定义数据结构 2.在dang.py中解析数据 3.使用pipeline保存 4.多条管道的使用 5.多页下载 参考 一、scrapy shell 1.什么是scrapy shell&am…

VBA即用型代码手册之工作薄的创建及保存

我给VBA下的定义&#xff1a;VBA是个人小型自动化处理的有效工具。可以大大提高自己的劳动效率&#xff0c;而且可以提高数据的准确性。我这里专注VBA,将我多年的经验汇集在VBA系列九套教程中。 作为我的学员要利用我的积木编程思想&#xff0c;积木编程最重要的是积木如何搭建…

python封装执行cmd命令的方法

一、前置说明 在自动化时&#xff0c;经常需要使用命令行工具与系统进行交互&#xff0c;因此可以使用python封装一个执行cmd命令的方法。 二、代码实现 import subprocess import timefrom common.exception import RunCMDError from common.logger import loggerclass Cmd…

Nat Med | 白血病患儿持续存在CD19 CAR-T细胞的转录特征

今天给同学们分享一篇实验文章“Transcriptional signatures associated with persisting CD19 CAR-T cells in children with leukemia ”&#xff0c;这篇文章发表在Nat Med期刊上&#xff0c;影响因子为82.9。 结果解读&#xff1a; 研究队列和实验概述 作者研究了15例高…