Python str里常用的命令都有哪些?

本文介绍了Python中对字符串进行操作的方法,包括capitalize用于首字母大写,casefold和lower将字符串转为小写,center设置字符串居中并填充,count统计子序列出现次数,endswith和startswith判断字符串是否以特定字符结束或开始,以及expandtabs将制表符转换为空格并调整宽度。

  Python str其实就是字符串,在工作中我们经常会接触到字符串这个数据类型,常见的例子比如取值,首字母大写、所有变小写,但是很多同学都不知道该如何实现这个功能,以下是详细的内容:

  1、capitalize

  首字母大写

  name = "adam"

  v = name.capitalize() #name内的字符串首字母大写

  print(type(v),v)

  2、casefold和lower

  所有变小写

  name = "aDam"

  v = name.casefold() #name内的字符串变成小写(它可以处理不同的语种内的字母大小写)

  print(type(v),v)

  name = "aDam"

  v2 = name.lower() #name内的字符串变成小写(它只能处理英文)

  print(type(v2),v2)

  3、center

  设置字符串长度并将内容剧中,空白位置进行填充并且何可设置填充的符号默认填充空格

  name = "adam"

  v = name.center(25."+") #在name赋值的字符串的前后各增加加号 ,使得整体字符串占一共有8个字符之前name的赋值字符串剧中,并且赋值给v

  print(type(v),v)

  4、count

  寻找字符串中的子序列或字符出现的次数,并可以设置起始的寻找位数

  name = "adam"

  v = name.count('a',2.4) #计算a在name赋值的字符串内 出现过多少次,不写(,2.4)的话默认是冲头到位找,写了就是从地2到4位寻找

  print (v)

  5、endswith和startswith

  endswith 判断结尾的字符是什么 可以设置 起始位置

  startswith 判断开头的字符是什么 可以设置 起始位置 注意设置的开始位置要前移一个单位

  name = "adam"

  v = name.endswith('d',1.2) #判断 name赋值的字符串 从第一个字符到第二个字符结束 结尾的字母是不是d

  v1 = name.startswith('a',0.2)#判断name赋值的字符串,从第0位到第2位 是不是以 字母a开头

  print (v)

  print (v1)

  6、expandtabs

  将\t 前面字符位数用空格补至x位 ,如\t 前字符位数等于x 则 直接用x个空格替换\t 如\t前字符位数大于x 则在前面字符最末尾补x余数个空格(输出结果不再显示\t)

  test = '12345\t6789'

  v = test.expandtabs(8)

  v1 = test.expandtabs(3)

  v2 = test.expandtabs(5)

  print(v)

  print(v1)

  print(v2)

  #应用实例:

  test = '姓名\t性别\t身高\n张三\t男\t180\n张三\t男\t180\n张三\t男\t180'

  v = test.expandtabs(10)

  print(v)

<think>我们被要求回答关于在立创商城或芯查查后台进行数据清洗时常用Python代码和命令。由于立创商城和芯查查都是电子元器件相关的平台,数据清洗可能涉及元器件规格、价格、库存等数据。以下是一些常见的数据清洗任务和相应的Python代码示例: 常见任务包括: 1. 缺失值处理 2. 重复值处理 3. 数据类型转换 4. 字符串处理(如规格参数拆分) 5. 异常值处理 我们将使用pandas库,因为它是Python数据清洗最常用的库。 ### 1. 缺失值处理 在元器件数据中,某些字段可能缺失,比如价格、库存等。我们可以选择填充或删除缺失值。 ```python import pandas as pd # 读取数据(假设为CSV文件) df = pd.read_csv('components.csv') # 检查缺失值 print(df.isnull().sum()) # 填充缺失值,例如用中位数填充价格 df['price'].fillna(df['price'].median(), inplace=True) # 或者删除包含缺失值的行 df.dropna(subset=['price'], inplace=True) ``` ### 2. 重复值处理 同一元器件可能被重复录入,需要去重。 ```python # 检查重复行 print(df.duplicated().sum()) # 删除重复行 df.drop_duplicates(inplace=True) ``` ### 3. 数据类型转换 有时数值数据被识别为字符串(如价格带有货币符号),需要转换。 ```python # 去除价格中的货币符号并转换为浮点数 df['price'] = df['price'].str.replace('¥', '').astype(float) # 转换库存列为整数 df['stock'] = df['stock'].astype(int) ``` ### 4. 字符串处理 元器件规格参数通常以字符串形式存储,需要解析。例如,电阻值可能是“10kΩ±1%”,我们需要提取数值和单位。 ```python # 示例:从电阻值字符串中提取数值(假设格式为数字+单位+公差) # 使用正则表达式提取 df['resistance_value'] = df['resistance'].str.extract(r'(\d+\.?\d*)')[0].astype(float) df['resistance_unit'] = df['resistance'].str.extract(r'([kM]?Ω)') # 提取公差 df['tolerance'] = df['resistance'].str.extract(r'±(\d+%)') ``` ### 5. 异常值处理 元器件价格或库存可能有异常值,比如价格过高或为负数。 ```python # 定义合理价格范围 min_price = 0.01 max_price = 10000 # 标记异常值 df['price_anomaly'] = ~df['price'].between(min_price, max_price) # 或者过滤掉异常值 df = df[df['price'].between(min_price, max_price)] ``` ### 6. 数据规范化 有时需要将数据规范化,比如将不同单位的电容值统一为纳法(nF)。 ```python # 假设电容列有单位:uF, nF, pF def convert_capacitance(value): if 'uF' in value: num = float(value.replace('uF', '')) return num * 1000 # 转为nF elif 'nF' in value: return float(value.replace('nF', '')) elif 'pF' in value: num = float(value.replace('pF', '')) return num / 1000 # 转为nF else: return None df['capacitance_nF'] = df['capacitance'].apply(convert_capacitance) ``` ### 7. 分列数据 有时一个字段包含多个信息,需要拆分。 ```python # 例如,封装信息为“SOT-23-5”,拆分为封装类型和引脚数 df[['package_type', 'pin_count']] = df['package'].str.split('-', expand=True)[[1,2]] df['pin_count'] = df['pin_count'].astype(int) ``` ### 8. 合并数据 可能需要从不同来源合并数据。 ```python # 合并两个数据框(如立创商城和芯查查的数据) df_lcsc = pd.read_csv('lcsc_components.csv') df_xcc = pd.read_csv('xcc_components.csv') # 根据型号合并 merged_df = pd.merge(df_lcsc, df_xcc, on='model', how='outer') ``` ### 9. 保存清洗后的数据 清洗完成后保存到新文件。 ```python df.to_csv('cleaned_components.csv', index=False) ``` 以上是电子元器件数据清洗中常见的操作和代码示例。实际应用中,需要根据具体数据结构进行调整。 §§相关问题§§ 1. 如何处理电子元器件数据中的多规格参数(如电阻、电容)的解析? 2. 在数据清洗过程中,如何保证数据的一致性(例如,同一型号的元器件在不同数据源中的命名差异)? 3. 对于大规模电子元器件数据,如何提高数据清洗的效率?</think>### Python 数据清洗常用代码与命令(立创商城/芯查查场景) 在电子元器件平台(如立创商城、芯查查)的数据清洗中,常见任务包括处理元器件规格、价格波动、库存数据和参数表。以下是核心代码示例: #### 1. **缺失值处理** ```python import pandas as pd import numpy as np # 读取CSV数据(模拟元器件数据) df = pd.read_csv('components.csv') # 检测缺失值 print("缺失值统计:\n", df.isnull().sum()) # 填充策略:数值列用中位数,分类列用众数 df['price'] = df['price'].fillna(df['price'].median()) df['package_type'] = df['package_type'].fillna(df['package_type'].mode()[0]) ``` #### 2. **规格参数解析** ```python # 示例:解析电阻值 "10kΩ±5%" → 数值+单位+公差 def parse_resistance(val): import re pattern = r'(\d+\.?\d*)([kKmM]?Ω)(±\d+%)?' match = re.match(pattern, str(val)) return match.groups() if match else (None, None, None) df[['value', 'unit', 'tolerance']] = df['resistance'].apply( lambda x: pd.Series(parse_resistance(x)) ) ``` #### 3. **价格数据清洗** ```python # 去除货币符号并转换类型 df['price'] = df['price'].str.replace('¥', '').astype(float) # 识别价格异常值(基于3σ原则) mean = df['price'].mean() std = df['price'].std() df = df[(df['price'] > mean - 3*std) & (df['price'] < mean + 3*std)] ``` #### 4. **库存数据规范化** ```python # 将 ">1000" 转换为数值 df['stock'] = df['stock'].replace({'>': '', '<': ''}, regex=True).astype(float) # 创建库存等级 df['stock_level'] = pd.cut(df['stock'], bins=[0, 100, 500, 1000, np.inf], labels=['紧急', '紧张', '充足', '过剩']) ``` #### 5. **参数表结构化** ```python # 展开JSON格式的参数 import json df['specs'] = df['specs'].apply( lambda x: json.loads(x.replace("'", '"')) if isinstance(x, str) else {} ) specs_df = pd.json_normalize(df['specs']) df = pd.concat([df.drop('specs', axis=1), specs_df], axis=1) ``` #### 6. **批次号验证** ```python # 验证立创商城批次号格式 (例: LCSC-2023A001) batch_pattern = r'^LCSC-\d{4}[A-Z]\d{3}$' df['valid_batch'] = df['batch_no'].str.match(batch_pattern) ``` #### 7. **数据导出** ```python # 保存清洗后数据 df.to_csv('cleaned_components.csv', index=False, encoding='utf-8-sig') # 导出到Excel(保留元数据) with pd.ExcelWriter('result.xlsx') as writer: df.to_excel(writer, sheet_name='Components') writer.book.properties.title = "立创商城数据清洗报告" ``` ### 关键注意事项 1. **电子元器件特性**: - 参数解析需考虑单位换算(如 nF → μF) - 注意封装类型标准化(SOT-23-3 vs SOT23) - 区分有源/无源器件清洗逻辑 2. **平台差异**: - 立创商城:关注价格阶梯和库存实时性 - 芯查查:重点处理替代型号关系和生命周期状态 3. **性能优化**: ```python # 大数据集使用Dask import dask.dataframe as dd ddf = dd.read_csv('large_dataset.csv', blocksize=100e6) cleaned = ddf.map_partitions(clean_function) ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值