需求描述:我们日常实际的工作中经常需要把一列数据按中文和 数字或者字母单独拆分出来

导入所需的库:

import pandas as pd

定义函数 extract_characters,该函数接受三个参数:file_path(Excel文件路径)、sheet_name(工作表名称)和 column_name(列名)。

def extract_characters(file_path, sheet_name, column_name):

读取Excel文件并将其存储到DataFrame中:

df = pd.read_excel(file_path, sheet_name=sheet_name)

创建两个新的列 '中文''其他字符',并将它们添加到DataFrame中:

df['中文'] = ''
df['其他字符'] = ''

遍历DataFrame的每一行数据:

for index, row in df.iterrows():

获取指定列的值,并将其转换为字符串:

text = str(row[column_name])

初始化两个空字符串变量 chineseother,用于存储中文字符和其他字符:

chinese = ''
other = ''

遍历每个字符:

for char in text:

判断当前字符是否为中文字符(Unicode范围为\u4e00\u9fff):

if '\u4e00' <= char <= '\u9fff':

如果是中文字符,则将其添加到 chinese 字符串中:

chinese += char

如果不是中文字符,则将其添加到 other 字符串中:

other += char

将中文字符集合添加到新的 '中文' 列中:

df.at[index, '中文'] = chinese

将其他字符集合添加到新的 '其他字符' 列中:

df.at[index, '其他字符'] = other

返回处理后的DataFrame对象:

return df

定义测试示例的文件路径、工作表名称和列名:

file_path = r'测试.xlsx'
sheet_name = 'Sheet1'
column_name = '店铺销售sku'

调用 extract_characters 函数,并将结果存储在 result_df 中:

result_df = extract_characters(file_path, sheet_name, column_name)

将处理后的DataFrame保存为Excel文件:

result_df.to_excel('result.xlsx', index=False)

完整代码:

Python拆分列中文和 字符的更多相关文章

  1. Excel 中如何快速统计一列中相同字符的个数(函数法)

    https://jingyan.baidu.com/article/6d704a132ea17328da51ca78.html 通过excel快速统计一列中相同字符的个数,如果很少,你可以一个一个数. ...

  2. python 统计字符串中指定字符出现次数的方法

    python 统计字符串中指定字符出现次数的方法: strs = "They look good and stick good!" count_set = ['look','goo ...

  3. ArcMap - 使用python更新列中的值

    概述:在外文网上,很多人都问在ArcMap中如何通过SQL修改属性字段的值,我见回答的人都说通过"Field Calculator",貌似不能直接通过SQL语句. 虽然学gis开发 ...

  4. bash python获取文本中每个字符出现的次数

    bash: grep -o . myfile | sort |uniq -c python:  使用collections模块 import pprint import collections f = ...

  5. python在字符串中查找字符

    两类函数: find(),rfind() index(),rindex() 找到了都返回下标. find找不到返回-1,index找不到抛出ValueError. 带r的表示从右向左找. 都可以使用第 ...

  6. python去掉字符串中重复字符的方法

      If order does not matter, you can use   foo = "mppmt" "".join(set(foo)) set() ...

  7. Pandas: 如何将一列中的文本拆分为多行? | Python

    Pandas: 如何将一列中的文本拆分为多行? 在数据处理过程中,经常会遇到以下类型的数据: 在同一列中,本该分别填入多行中的数据,被填在一行里了,然而在分析的时候,需要拆分成为多行. 在上图中,列名 ...

  8. 拆分Sql列中内容的拆分

    拆分Sql列中内容的拆分. /*按照符号分割字符串*/ create function [dbo].[m_split](@c varchar(2000),@split varchar(2)) retu ...

  9. 《Python CookBook2》 第一章 文本 - 检查字符串中是否包含某字符集合中的字符 && 简化字符串的translate方法的使用

    检查字符串中是否包含某字符集合中的字符  任务: 检查字符串中是否出现了某个字符集合中的字符 解决方案: 方案一: import itertools def containAny(seq,aset): ...

  10. SQL判断某列中是否包含中文字符或者英文字符

    SQL判断某列中是否包含中文字符或者英文字符   [sql]  select * from 表名 where 某列 like '%[吖-座]%'     select * from 表名 where ...

随机推荐

  1. AntdPro中formItemProps和fieldProps的区别

    最近在工作中接触到了 antd 和 antd pro,作为一个 react 和 antd 新人,在学习和使用中遇到了不少的问题,下边就常见的一个问题来进行记录,后续还会记录更多的问题以及心得 Form ...

  2. 使用mybatis-generator 能生成 但是实际使用时抛出异常Invalid bound statement (not found)

    好多好多好多红 但是重点是一句org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): {}.d ...

  3. Java服务刚启动时,一小波接口超时排查全过程

    原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,非公众号转载保留此声明. 简介 我们组有一个流量较大的Java服务,每次发代码时,服务都会有一小波接口超时,之前简单分析过,发现这些超时的 ...

  4. flex布局入门

    一.简介 Flexible 单词意思是灵活的意思,flex布局又称为弹性布局或弹性盒子布局 Flex布局(Flexible Box Layout)是CSS3引入的一种布局模型,它旨在提供一种灵活且高效 ...

  5. Kubernets常用命令

    查看所有namespace的pods运行情况 kubectl get pods --all-namespaces kubectl get service -ALL kubectl get deploy ...

  6. CMDB 相关

    CMDB 术语 CI(配置项) 配置管理解决方案(如CMDB)中的基本有形或无形实体. 为了交付IT服务而需要管理的任何组件. 通常包括IT服务.硬件.软件.架构.人员和正式文档(如流程文档和sla) ...

  7. HTML超文本标记语言4

    框架标签...等等 1.框架 <frameset> 框架标签 cols="按列划分" rows="按行划分" 格式:rows="100,* ...

  8. 操作系统复习 MITS6.1810 lab util 记录

    lab util sleep 介绍:主要用来熟悉下环境以及代码结构. See kernel/sysproc.c for the xv6 kernel code that implements the ...

  9. quarkus依赖注入之六:发布和消费事件

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是<quarkus依赖注入> ...

  10. 为react项目添加开发/提交规范(前端工程化、eslint、prettier、husky、commitlint、stylelint)

    因历史遗留原因,接手的项目没有代码提醒/格式化,包括 eslint.pretttier,也没有 commit 提交校验,如 husky.commitlint.stylelint,与其期待自己或者同事的 ...