数据分析:数据分割

分享一个数据分割的代码,第一次分割按照数字,第二次分割按照空格和汉字

python 复制代码
import pandas as pd  
import re  
  
# 指定文件路径  
file_path = 'C:\\Users\\admin\\Desktop\\tumi.xlsx'  
  
# 使用pandas的read_excel函数读取Excel文件  
df = pd.read_excel(file_path, engine='openpyxl')  
  
# 查看第一列的数据  
first_column_data = df.iloc[:, 0]  
  
# 定义一个函数,使用'0'作为分隔符来拆分字符串,只拆分一次  
def split_once_by_zero(text):  
    if isinstance(text, str):  
        parts = text.split('0', 1)  # 只拆分第一次出现的'0'  
        if len(parts) == 1:  
            return [parts[0], None]  # 如果没有'0',则返回原字符串和None  
        else:  
            return parts  # 返回拆分后的两部分  
    else:  
        return [None, None]  # 非字符串情况返回两个None  
  
# 应用拆分函数到第一列数据  
split_data = first_column_data.apply(split_once_by_zero)  
  
# 初始化新DataFrame,只有两列  
split_df = pd.DataFrame({  
    '字段1': [item[0] for item in split_data],  
    '字段2_临时': ['0' + item[1] if item[1] is not None else None for item in split_data]  
}, index=df.index)  
  
# 定义一个正则表达式,用于匹配非汉字和非特殊字符的部分  
# 汉字通常落在Unicode范围\u4e00-\u9fa5内,特殊字符可根据需要自行添加  
pattern = r'([^\u4e00-\u9fa5^!@#$%^&*()_+\-=\[\]{};\':"\\|,.<>\/?]+)'  
  
# 定义一个函数,用于拆分字段2_临时,基于正则表达式  
def split_by_regex(text):  
    if text is None:  
        return [None, None]  
    matches = re.split(pattern, text)  
    # 过滤掉空字符串  
    matches = [m for m in matches if m]  
    if len(matches) == 1:  
        return [text, None]  # 如果没有匹配到,返回原字符串和None  
    else:  
        return [matches[0], ''.join(matches[1:])]  # 返回拆分后的两部分  
  
# 应用拆分函数到字段2_临时  
split_df[['字段2', '字段3']] = pd.DataFrame(split_df['字段2_临时'].apply(split_by_regex).tolist(), index=split_df.index)  
  
# 删除临时的字段2列  
del split_df['字段2_临时']  
  
# 显示拆分后的DataFrame  
print(split_df)  
  
# 指定新的Excel文件路径  
output_file_path = 'C:\\Users\\admin\\Desktop\\split_tumi_twice.xlsx'  
  
# 使用Pandas的to_excel方法保存DataFrame到Excel文件  
split_df.to_excel(output_file_path, index=False)  # 不保存索引到Excel文件中
相关推荐
迅猛龙办公室1 小时前
python实现倒序输出数字
开发语言·python
全栈练习生10 小时前
AI Agent 沙箱
python·ai
SEO_juper11 小时前
用 Python 写一个 GEO 可见性检查脚本:你的网站现在能被 AI 引用吗
开发语言·人工智能·爬虫·python·seo·外贸独立站
Aloudata技术团队12 小时前
Metric Layer 建设指南:如何先从核心指标层启动企业语义工程
数据分析
用户83562907805112 小时前
使用 Python 对 Excel 工作表进行排序
后端·python
for_ever_love__13 小时前
MySQL 全文索引实战:FULLTEXT、ngram 中文分词与 MATCH AGAINST 到底该怎么用
java·python·mysql·全文检索·分词·索引·ngram
用户83562907805113 小时前
使用 Python 合并 PowerPoint 演示文稿
后端·python
weixin_4617694013 小时前
VS Code 中创建 Jupyter 文件(.ipynb)
ide·python·jupyter
2601_9669496513 小时前
多市场量化策略的数据接口应该如何设计:从数据层架构到策略接入
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
全栈弄潮儿14 小时前
Python实战第1期:Python环境搭建与第一个程序
python