if '结构' not in df2.columns: df2=do_jiegou(df2)这种写法正确吗?如何改正

时间: 2024-09-23 20:14:49 浏览: 51

这种写法是在Python的Pandas库中检查DataFrame df2 的列名是否包含字符串 '结构'。如果不在列名中,它会执行 do_jiegou(df2) 函数对 df2 进行操作。这是一种条件控制语句,通常用于数据清洗或预处理。

这个表达式本身语法上看起来是正确的,不过我们需要了解do_jiegou()函数的具体内容和预期输入输出,才能判断其在特定上下文中的正确性。如果do_jiegou()确实需要添加新的列或修改某些列,那么在实际应用中应该确保不会覆盖掉其他重要的信息。

如果要确保语义清晰,可以将函数名改为更有描述性的名称,并加上适当的错误处理,例如:

if '结构' not in df2.columns:
    df2 = do_structure_modification(df2)
else:
    print(f"已存在'结构'列,无需进行操作.")

def do_structure_modification(df2):
    # 检查并执行必要的列处理
    # ...

# 或者直接在函数内部进行检查和处理
def do_jiegou(df2):
    if '结构' not in df2.columns:
        df2 = perform_structure_adjustment(df2)
    return df2

def perform_structure_adjustment(df2):
    # 实现添加或修改结构列的操作
    # ...
相关问题

解释下这段代码 第三方商品 __df1 = __temp_df[__temp_df['show_name'] == '第三方商品'] if not __df1.empty: __df1 = __df1.pivot_table(index=['name', 'show_name'], values=['buy_num'], aggfunc=np.sum).reset_index() else: __df1 = __df1[['name', 'show_name', 'buy_num']] # 非第三方商品 __df2 = __temp_df[__temp_df['show_name'] != '第三方商品'] if not __df2.empty: __df2 = __df2.pivot_table(index=['gt_uuid', 'show_name'] ,values=['buy_num'], aggfunc=np.sum).reset_index() __df2 = pd.merge(left=__df2, right=pd.DataFrame(s_gt_rv, columns=['gt_uuid', 'goods_name']), how='left', on='gt_uuid') __df2 = __df2[['goods_name', 'show_name', 'buy_num']] __df2.rename(columns={'goods_name': 'name'}, inplace=True) else: __df2 = __df2[['name', 'show_name', 'buy_num']] __temp_df = pd.concat([__df1, __df2]) del __df1, __df2 __temp_df.rename(columns={'name': 'goods_name', 'show_name': 'gc_name', 'buy_num': 'num'}, inplace=True) __temp_df.sort_values(by='num', ascending=False, inplace=True) return_data['goods']['goods_list'] = __temp_df.to_dict(orient='records') __temp_df = __temp_df[['gc_name', 'num']] __temp_df = __temp_df.pivot_table(index='gc_name', values='num', aggfunc=np.sum).reset_index() __temp_df.sort_values(by='num', ascending=False, inplace=True) return_data['goods']['gc_list'] = __temp_df.to_dict(orient='records') del __temp_df

这段代码是对一个名为 __temp_df 的数据框进行处理,并将处理结果存储在 return_data 字典的 goods 键下。

首先,根据条件 __temp_df['show_name'] == '第三方商品',筛选出满足条件的行,存储在 __df1 中。如果 __df1 不为空,则对其进行数据透视操作,按照 nameshow_name 分组,计算 buy_num 的总和,并重置索引。否则,保留 __df1nameshow_namebuy_num 列。

接着,根据条件 __temp_df['show_name'] != '第三方商品',筛选出满足条件的行,存储在 __df2 中。如果 __df2 不为空,则对其进行数据透视操作,按照 gt_uuidshow_name 分组,计算 buy_num 的总和,并重置索引。然后,将 __df2 与一个包含列名为 ['gt_uuid', 'goods_name'] 的 DataFrame 进行左连接,并将结果存储在 __df2 中。最后,保留 __df2goods_nameshow_namebuy_num 列,并将列名 goods_name 改为 name

接下来,通过合并 __df1__df2 构成新的数据框 __temp_df。之后,删除 __df1__df2 变量。

然后,对 __temp_df 进行列名的重命名,将 name 改为 goods_nameshow_name 改为 gc_namebuy_num 改为 num。将 __temp_df 按照 num 降序排序。

接着,将 __temp_df 转换为字典格式,并将结果存储在 return_data 字典的 goods_list 键下。再次对 __temp_df 进行处理,只保留 gc_namenum 两列,并进行数据透视操作,按照 gc_name 分组,计算 num 的总和,并重置索引。最后,将结果按照 num 降序排序。

最后,将处理后的 __temp_df 转换为字典格式,并将结果存储在 return_data 字典的 gc_list 键下。最后,删除 __temp_df 变量。

输出报错runcell(0, '/Users/mac/??????.py') Traceback (most recent call last): File ~/anaconda3/lib/python3.10/site-packages/spyder_kernels/py3compat.py:356 in compat_exec exec(code, globals, locals) File ~/??????.py:36 df2=df2.sort_values(by='??/?',ascending=False) File ~/anaconda3/lib/python3.10/site-packages/pandas/util/_decorators.py:331 in wrapper return func(*args, **kwargs) File ~/anaconda3/lib/python3.10/site-packages/pandas/core/frame.py:6912 in sort_values k = self._get_label_or_level_values(by, axis=axis) File ~/anaconda3/lib/python3.10/site-packages/pandas/core/generic.py:1850 in _get_label_or_level_values raise KeyError(key) KeyError: ‘人数/万’,重新修改一下这个程序

根据错误信息看来,出现了KeyError异常,即没有找到名为'人数/万'的列。你可以检查一下DataFrame是否包含该列,或者该列名是否拼写正确。另外,为了避免出现中文乱码问题,可以在文件开头添加如下代码,设置编码为UTF-8:

# -*- coding: utf-8 -*-

根据你提供的代码,修改后的程序如下:

# -*- coding: utf-8 -*-
import requests
from bs4 import BeautifulSoup
import pandas as pd

url = 'https://www.gk100.com/read_16892539.htm'
header = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Safari/605.1.15"}

r = requests.get(url, headers=header)
r.encoding = r.apparent_encoding

soup = BeautifulSoup(r.text, features="lxml")
w1 = soup.find_all("td")

result = w1
df = pd.DataFrame(result)

df1 = df[2:]
for index in df1:
    d1 = df1[df1.index%2==0]
    d2 = df1[df1.index%2!=0]
    d1 = d1.reset_index(drop=True)
    d2 = d2.reset_index(drop=True)
    df2 = pd.concat([d1,d2], axis=1)

# 排序,按照第二列的元素进行降序排列
df2 = df2.sort_values(by='??/?', ascending=False)

title = ['省份', '人数/万']
df2.columns = title

print(df2)

需要注意的是,你的代码中by='??/?'的部分中文字符被替换成了问号,可能是文件编码不太兼容,你需要手动修改为正确的列名。

向AI提问 loading 发送消息图标

相关推荐

docx
内容概要:本文档详细介绍了将贝叶斯优化应用于FBCCA(滤波器组公共空间模式)参数调整的完整解决方案,包括代码实现和优化流程。首先,通过MNE库加载并预处理EEG数据,进行7-30Hz的预滤波处理,提取相关事件片段。接着,定义了FBCABayesianOptimizer类,该类包含创建动态滤波器组、获取模型参数以及定义优化目标函数的方法。其中,参数空间由离散和连续参数组成,涵盖了滤波器数量、CSP组件数、起始频率、带宽、交叠率等,并通过Optuna库进行多维搜索。优化过程中采用5折交叉验证机制,同时引入智能早停策略以提高效率。最后,提供了优化结果的可视化工具,如优化轨迹图、参数重要性图和滤波器组配置图,帮助用户更好地理解和分析优化过程。 适合人群:具有一定编程基础,尤其是对机器学习、脑电数据分析及贝叶斯优化感兴趣的科研人员和技术开发者。 使用场景及目标:①通过动态滤波器组生成算法,捕捉频段间的过渡特征;②利用混合参数空间设计,探索不同参数组合的效果;③借助高效交叉验证机制和智能早停策略,提高优化效率;④通过可视化工具,直观展示优化过程和结果。 阅读建议:此资源不仅展示了完整的代码实现,还深入探讨了FBCCA参数调整的理论基础和实际应用。建议读者在学习过程中结合理论知识与代码实践,逐步理解每个步骤的原理,并尝试调整参数以观察不同设置对优化效果的影响。同时,可根据自身硬件条件,考虑扩展建议中的GPU加速、分布式优化和在线学习等高级特性。
大学生入口

大家在看

recommend-type

从周期曲面方程转换为stl文件的实体并保存:建立并保存周期曲面实体的stl文件-matlab开发

周期性表面形成一个区域,可以是一个实体,这个文件可以建立这个实体并将其保存到 stl。 另外,如果需要surface的stl文件,这个文件也可以。 这项工作的灵感来自 Sven Holcombe 和他的 stlwrite.m
recommend-type

分子动力学lammps数据分析、二次开发、拉伸摩擦、非平衡统计、自由能计算学习资料

分子动力学lammps数据分析、二次开发、拉伸摩擦、非平衡统计、自由能计算学习资料,全套学习资料,分子动力学lammps数据分析、二次开发、拉伸摩擦、非平衡统计、自由能计算学习资料,全套学习资料。
recommend-type

DLTViewer-2.12.1-setup

DLTViewer-2.12.1-setupDLTViewer-2.12.1-setup
recommend-type

运动控制算法-运动控制算法轨迹规划

运动控制算法 传统的交流伺服系统只能实现对速度的闭环控制,还不能直接实现对位置的闭环控制。要实现对位置的闭环控制,必须在伺服电机和控制系统之间构成一个位置环。这个位置环是由数字伺服控制单元来完成的。位置环的功能是实现位置闭环控制,输入脉冲实际上是一个差动脉冲,即由预先设定好的脉冲给定与反馈回的实际测量脉冲的差值,即根据给定位置和测量位置以及动态的误差,计算所要求要达到的速度参考,并将其提供给伺服驱动单元。如图1所示为数字伺服控制单元的运动控制算法框图: 整个数字伺服控制系统是靠实时监控和调整速度参数,即伺服驱动单元的输入脉冲来控制伺服马达。而运动控制算法用来计算这个速度参数。由上图,可以看出速度参数是由位置给定、测量脉冲和反馈误差这三个参数来决定的。整个算法是以PID(比例、积分和微分)控制为理论基础,其最大的优点在于不需了解被控对象的数学模型,只要根据经验调整上述增益参数,便可获得满意的结果。
recommend-type

西门子S7-1200直接连接MySQL数据库 MySQL-master

西门子S7-1200直接连接MySQL数据库 MySQL-master 博途版本为V15.1 MySQL版本 5.5.28 1、测试连接uMySQL_Connect可以连接数据库,输出状态正常 2、测试uMySQL_Query执行MySQL语句正常,但是输出状态还未完善 3、根据架构,原本设计为在uMySQL_Query中加载TSend和TRcv收发数据,但是多次尝试发现TSend可以多次调用,采用不同的背景数据块,但是TRCV多次调用编译无法通过。解决方案还在考虑。

最新推荐

recommend-type

西门子S7-200SMART与V20变频器基于Modbus通讯的稳定控制及应用

内容概要:本文详细介绍了西门子S7-200SMART PLC与V20变频器通过Modbus RTU协议进行通信的具体方法和技术要点。首先阐述了硬件连接方式,强调了正确的接线和参数设置对于稳定通信的重要性。接着深入讲解了PLC程序的设计,包括Modbus主站初始化、启停控制、频率设定以及断电自恢复等功能模块的实现。此外还分享了一些实用的经验技巧,如避免通讯冲突、处理浮点数转换等问题。最后提到该方案已在实际生产环境中成功应用,表现出良好的稳定性和可靠性。 适合人群:从事自动化控制系统集成的技术人员,特别是熟悉西门子PLC和变频器产品的工程师。 使用场景及目标:适用于需要将旧型号PLC与变频器进行高效集成的企业,在不影响原有设备的基础上提升系统的智能化水平,减少人工干预,提高生产效率。 其他说明:文中提供了大量具体的编程实例和参数配置指南,有助于读者快速掌握相关技能并应用于实际工作中。同时提醒读者注意一些常见的错误及其解决方案,帮助规避潜在的风险。
recommend-type

西门子PLC电机控制程序:封装好的功能块助力高效工业自动化

内容概要:本文详细介绍了西门子PLC中用于电机控制的封装功能块,涵盖正转、反转、变频控制等多种功能。通过简化底层代码,提高编程效率和系统可靠性。文章展示了如何使用功能块实现正转、反转、变频控制、模拟量处理、故障处理等功能,并结合用户自定义数据类型(UDT)和多重背景技术,实现对大量电机的高效管理。此外,还提供了具体的代码示例,帮助读者更好地理解和应用这些功能块。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是那些需要频繁处理电机控制任务的人群。 使用场景及目标:适用于需要简化电机控制编程、提高系统可靠性和可维护性的工业环境。主要目标是减少重复编码的工作量,提升开发效率,确保系统稳定运行。 其他说明:文中提供的代码示例和方法不仅有助于初学者快速入门,也为有经验的工程师提供了优化现有系统的思路。通过使用这些功能块,可以在短时间内完成复杂电机控制系统的搭建和调试。
recommend-type

腐败感知指数(CPI)数据和各种治理指标数据集

全球腐败感知数据(2000-2023)——3000行 33个指标 关于数据集 该数据集包含3000行和33列,涵盖了2000年至2023年的腐败感知指数(CPI)数据和各种治理指标。它包括国家排名、分数和其他指标,如公共部门腐败、司法腐败、贿赂指数、商业道德、民主指数、法治、政府效率、经济指标和人类发展指数。 这些数据可用于: 腐败趋势分析 腐败对GDP、人类发展指数和治理的影响 跨国比较 数据可视化和机器学习模型 该数据集对研究人员、数据分析师、政策制定者和对研究全球腐败趋势非常有用。
recommend-type

朔州市-平鲁区-街道行政区划_140603_Shp数据-wgs84坐标系.rar

街道级行政区划shp矢量数据,wgs84坐标系,下载直接使用
recommend-type

脑机接口基于贝叶斯优化的FBCCA参数自动调优系统设计与实现:EEG数据处理及优化流程详解

内容概要:本文档详细介绍了将贝叶斯优化应用于FBCCA(滤波器组公共空间模式)参数调整的完整解决方案,包括代码实现和优化流程。首先,通过MNE库加载并预处理EEG数据,进行7-30Hz的预滤波处理,提取相关事件片段。接着,定义了FBCABayesianOptimizer类,该类包含创建动态滤波器组、获取模型参数以及定义优化目标函数的方法。其中,参数空间由离散和连续参数组成,涵盖了滤波器数量、CSP组件数、起始频率、带宽、交叠率等,并通过Optuna库进行多维搜索。优化过程中采用5折交叉验证机制,同时引入智能早停策略以提高效率。最后,提供了优化结果的可视化工具,如优化轨迹图、参数重要性图和滤波器组配置图,帮助用户更好地理解和分析优化过程。 适合人群:具有一定编程基础,尤其是对机器学习、脑电数据分析及贝叶斯优化感兴趣的科研人员和技术开发者。 使用场景及目标:①通过动态滤波器组生成算法,捕捉频段间的过渡特征;②利用混合参数空间设计,探索不同参数组合的效果;③借助高效交叉验证机制和智能早停策略,提高优化效率;④通过可视化工具,直观展示优化过程和结果。 阅读建议:此资源不仅展示了完整的代码实现,还深入探讨了FBCCA参数调整的理论基础和实际应用。建议读者在学习过程中结合理论知识与代码实践,逐步理解每个步骤的原理,并尝试调整参数以观察不同设置对优化效果的影响。同时,可根据自身硬件条件,考虑扩展建议中的GPU加速、分布式优化和在线学习等高级特性。
recommend-type

深入浅出JavaMail库:打造邮件处理的强大API

JavaMail是Sun公司(现为Oracle公司的一部分)发布的一套API,用于在Java程序中发送和接收电子邮件。通过JavaMail,开发者可以方便地实现发送和接收邮件的功能,而无需关心底层的通信协议细节。JavaMail API是Java EE的一部分,但也可以在Java SE环境中独立使用。 JavaMail API的核心概念和组件包括以下几个方面: 1. **Session对象**: Session对象是JavaMail API中的核心类之一,它代表了一个邮件会话。一个会话可以有一个或多个邮件服务器连接和会话状态。开发者可以通过Session对象进行邮件服务器的连接管理、消息发送和接收等操作。在创建Session对象时,需要传入一个java.util.Properties对象,该对象中包含了必要的邮件服务器配置信息,如服务器地址、端口、登录用户名和密码等。 2. **Message类**: Message类代表了一个邮件消息。它是一个抽象类,提供了邮件消息的创建、修改以及邮件头部信息的设置等方法。Message类还定义了一些标准的邮件头部字段,比如发件人地址(From)、收件人地址(To)、邮件主题(Subject)等。 3. **Address类**: Address类用于表示电子邮件地址。邮件地址通常由用户标识(如用户名)和域名两部分组成。在发送邮件时,需要创建Address实例来表示邮件的发送者和接收者。 4. **Authenticator类**: Authenticator类用于处理认证相关的功能。在连接邮件服务器进行发送和接收邮件之前,通常需要进行用户认证。Authenticator类允许开发者自定义认证过程。通常情况下,JavaMail提供了一个默认的实现,可以通过设置java.net.PasswordAuthentication来完成认证。 5. **Transport类**: Transport类用于将邮件从客户端发送到邮件服务器。它是邮件发送的接口,可以发送单个或多个邮件消息。发送邮件时,通常需要指定一个邮件传输协议(如SMTP),并提供必要的认证信息。 6. **Store类**: Store类代表与邮件存储的连接,邮件存储可以是本地的邮箱文件,也可以是远程的邮件服务器。Store类提供了连接到邮件存储以及与之通信的方法。通过Store实例,可以打开和管理邮件文件夹(Folder)。 7. **Folder类**: Folder类用于访问和管理邮件存储中的文件夹,比如收件箱、发件箱等。Folder类可以执行打开、关闭、读取、删除邮件等操作。 在JavaMail 1.4.2版本中,上述组件是处理邮件的核心部分。开发者可以通过这些类和方法完成从建立邮件会话到最终收发邮件的整个过程。 为了使用JavaMail API发送和接收邮件,通常需要添加相应的依赖库到项目中。对于JavaMail 1.4.2版本,可能需要添加如下依赖(以Maven依赖为例): ```xml <dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> <version>1.4.2</version> </dependency> ``` 需要注意的是,随着时间的推移,邮件服务提供商可能变更了其邮件服务器的安全策略,因此在使用JavaMail时,可能需要关注SSL/TLS加密连接的支持、支持的邮件协议版本等安全和兼容性问题。 JavaMail库被广泛应用于各种Java应用程序中,不仅限于电子邮件客户端,还包括各种需要邮件发送功能的后台服务和Web应用。通过JavaMail API,开发者可以轻松地实现邮件的发送和接收,增强了应用程序的功能性和用户体验。
recommend-type

集成电路制造中的互扩散效应分析:理论与实验的融合

# 摘要 互扩散效应是影响集成电路性能的关键因素之一,涉及材料中的物质如何通过扩散过程影响彼此的分布和浓度。本文首先概述了互扩散效应的基本理论,
recommend-type

数据增强是什么

<think>嗯,用户问的是数据增强是什么。首先,我需要明确数据增强的定义,它是机器学习中的一个技术,用来增加训练数据的多样性和数量。然后,我得解释它的主要目的,比如防止过拟合,提升模型的泛化能力。接下来,应该分几个方面来详细说明,比如常见的方法,应用场景,还有注意事项。 常见方法的话,得提到图像、文本、音频这些不同数据类型的增强方式。比如图像里的旋转、裁剪,文本里的同义词替换,回译这些。需要举几个例子,让用户更容易理解。 然后应用场景,得说明在数据不足或者不平衡的时候用数据增强有效。比如医学图像分析,数据集小,增强后效果更好。还有自然语言处理里的文本分类,数据增强帮助模型更好地泛化。
recommend-type

Simulink环境下单相倍频SPWM仿真构建指南

根据给定的文件信息,我们可以提取出以下相关知识点进行详细说明: ### 标题知识点:“beipinspwm.zip” **1. 倍频SPWM技术** 倍频SPWM(正弦脉宽调制)技术是电力电子领域内一种用于改善电力质量的方法。通过调制技术生成高频开关信号,这些信号再经过逆变器转换成所需的输出电压波形。倍频技术意味着载波频率是调制波频率的几倍,这可以减少输出波形中的谐波,改善输出波形的质量。 **2. Simulink仿真工具** Simulink是MathWorks公司推出的一款基于MATLAB的多域仿真和基于模型的设计工具,它支持线性、非线性系统的动态仿真。Simulink提供了丰富的库和模块,允许用户对复杂的动态系统(如电子电路、机械系统、控制系统等)进行建模、仿真和分析。通过使用Simulink,工程师可以在图形化界面中搭建系统模型,无需编写大量代码。 ### 描述知识点:“基于simulink的单相倍频spwm仿真” **1. 单相逆变器** 单相逆变器是一种电子设备,它能够将直流电源转换成交流电源。这种转换通常用于将电池存储的直流电能转换为家庭和商业用途的交流电能。单相逆变器产生的交流电通常是单一的正弦波形,常用于小功率应用场合。 **2. 调制波与载波** 在SPWM技术中,调制波通常指的是希望输出的低频正弦波信号,而载波则是高频的三角波或锯齿波。调制波与载波通过比较器或者调制算法相结合,生成的控制信号用于驱动逆变器中的开关元件,从而生成近似于正弦波的交流输出。 **3. 建模技术** 在Simulink环境中,建模技术涉及使用图形化的块和连接线来构建系统模型。这些块代表了不同的物理组件或数学函数,用户可以将这些块配置为模拟现实世界中的动态行为。建模过程包括定义系统参数、设置初始条件以及配置仿真环境。 ### 标签知识点:“matlab simulink spwm” **1. MATLAB软件** MATLAB是一种高性能的数值计算和可视化软件,广泛应用于工程计算、数据分析、算法开发等领域。MATLAB提供了一个包含数学函数库、工具箱和交互式环境的编程语言平台。 **2. Simulink与MATLAB的集成** Simulink可以与MATLAB无缝集成,它能够利用MATLAB强大的数值计算能力和可视化功能。例如,在Simulink模型中可以直接调用MATLAB代码或函数,将仿真结果输出到MATLAB环境中进行进一步分析。 ### 压缩包子文件名称列表知识点:“beipinspwm.slx” **1. Simulink模型文件** Simulink模型文件通常以“.slx”为扩展名,它是Simulink项目的一种专用格式。这种文件格式支持模型的保存和加载,其中包含了模型的所有信息,包括块配置、连接关系、参数设置等。用户可以打开这类文件直接在Simulink环境中查看和修改模型。 ### 综合知识点 综合上述信息,我们可以得出“beipinspwm.zip”文件是一个Simulink建模项目,该项目专注于单相倍频SPWM技术的仿真。用户可以在该Simulink模型的基础上,根据自己的需求搭建和修改逆变器仿真模型,以便于研究和分析SPWM技术在电力电子领域中的应用。 在“beipinspwm.slx”文件中,用户能够找到已经搭建好的单相逆变器模型,该模型通过调制波和载波生成SPWM信号,用于控制逆变器中的开关元件。模型中还应该包含了必要的控制逻辑和反馈机制,以保证输出的交流电满足特定的电气参数要求。 Simulink的使用为电力电子工程师提供了一种直观和高效的方式来设计和测试电力系统,而MATLAB则为Simulink提供了强大的数学和数据分析支持。通过这种仿真方式,可以大幅减少实体样机的制作和测试成本,加速产品从设计到市场的时间。 用户在使用该Simulink模型时,应具备一定的MATLAB和Simulink操作知识,以及电力电子学和控制理论的基础,以便能够充分理解和修改模型,从而得到精确的仿真结果。此外,用户还应熟悉SPWM技术的原理和应用,这样才能在模型的基础上进行有效的创新和开发。
recommend-type

外延工艺改进:提升集成电路制造效率的秘籍

# 摘要 集成电路制造是现代电子工业的基石,而外延工艺作为其核心环节,对于集成电路的性能和质量具有决定性作用。本文综述了集成电路外延工艺的理论基础、实践技术及优化策略,并探讨了制造效率提升的途径。通过对外延层生长机制、技术分类及其质量评估方法的分析,深入讨论了提升外延层均匀性和缩短工艺周期的技术手段。此外,本文还讨论了新兴技术对外延工艺的影响,行业
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部