需求描述:我们日常实际的工作中经常需要把一列数据按中文和 数字或者字母单独拆分出来
导入所需的库:
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])
初始化两个空字符串变量 chinese
和 other
,用于存储中文字符和其他字符:
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)
完整代码: