Python怎么处理excel表格单元格空字符串、换行符
import numpy as np
import pandas as pd
import os
import matplotlib.pyplot as plt
# 环境配置:解决中文乱码和图表后端问题
plt.switch_backend('tkAgg')
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 数据加载:读取同一个Excel的3个sheet
file_path = r'D:pythoncodemeal_order.xlsx'
if not os.path.exists(file_path):
raise FileNotFoundError(f"Excel文件没找到,检查路径:{file_path}")
# 读取3个工作表
data1 = pd.read_excel(file_path, sheet_name='meal_order_detail1')
data2 = pd.read_excel(file_path, sheet_name='meal_order_detail2')
data3 = pd.read_excel(file_path, sheet_name='meal_order_detail3')
# 纵向合并3个sheet的行数据
data = pd.concat([data1, data2, data3], axis=0, ignore_index=True) # ignore_index重置索引,避免重复
data.dropna(axis=1, inplace=True)
data.head(10)
python在处理excel数据时候发现excel单元格有前面空字符串换行符

发现“香烤牛排”数据异常,回头看数据源


应该是数据输入时候出了问题,为了避免后续处理数据出现问题,需要对数据进行处理,消除空字符。增加功能后代码
import numpy as np
import pandas as pd
import os
import matplotlib.pyplot as plt
# 环境配置:解决中文乱码和图表后端问题
plt.switch_backend('tkAgg')
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 数据加载:读取同一个Excel的3个sheet
file_path = r'D:pythoncodemeal_order.xlsx'
if not os.path.exists(file_path):
raise FileNotFoundError(f"Excel文件没找到,检查路径:{file_path}")
# 读取3个工作表
data1 = pd.read_excel(file_path, sheet_name='meal_order_detail1')
data2 = pd.read_excel(file_path, sheet_name='meal_order_detail2')
data3 = pd.read_excel(file_path, sheet_name='meal_order_detail3')
# 纵向合并3个sheet的行数据
data = pd.concat([data1, data2, data3], axis=0, ignore_index=True) # ignore_index重置索引,避免重复
data.dropna(axis=1, inplace=True)
# ===================== 核心步骤:去除所有列的单元格前后空格 =====================
def clean_cell_spaces(df):
"""
清理DataFrame中所有字符串列的前后空格(包括半角+全角空格)
:param df: 原始DataFrame
:return: 清理后的DataFrame
"""
for col in df.columns:
# 仅处理字符串类型的列(Pandas中字符串列默认dtype为object)
if df[col].dtype == 'object':
# 步骤1:填充空值为空白字符串,避免调用str方法报错
# 步骤2:替换全角空格为无
# 步骤3:去除前后半角空格
df[col] = df[col].fillna('').str.replace(' ', '').str.strip()
return df
# 调用函数清理空格
data = clean_cell_spaces(data)
data.head(10)

空字符异常不见了!
© 版权声明
文章版权归作者所有,未经允许请勿转载。


收藏了,感谢分享