python怎么把csv文件列表中字符串中的英文剔除啊,代码冗余度太大了,有没有简便的方法

python怎么把csv文件列表中字符串中的英文剔除啊,代码冗余度太大了,有没有简便的方法

img

正则匹配中文字符

来自chatgpt的回答

import re

file_list = ['file1.csv', 'file2英.csv', 'file3.csv', 'file4含有英文字母.csv']

# 定义匹配英文字符的正则表达式
pattern = re.compile(r'[a-zA-Z]')

# 使用列表推导式去除英文字符后的文件列表
new_file_list = [re.sub(pattern, '', f) for f in file_list]

print(new_file_list)

在这个示例代码中,我们使用了 re 模块中的 sub() 函数来将字符串中的英文字符替换为空串。该函数接受两个参数:第一个参数是要匹配的正则表达式,第二个参数是要替换成的字符串。

在本例中,我们使用 re.compile() 函数编译了一个匹配英文字符的正则表达式,并使用列表推导式来遍历文件列表并将其中每个字符串中的英文字符替换为空串。最后,我们打印出新的文件列表。

希望这个示例代码能够帮助到您。

没有去除左右两边空格,结果文件是源文件名+_out
代码示例如下:

import re


file_name = 'test.csv'

try:
    with open(file_name, 'r') as file:
        lines = file.readlines()
        for i in range(len(lines)):
            ls = lines[i].split(',')
            for j in range(len(ls)):
                ls[j] = re.sub('[a-zA-Z]', '', ls[j])
            lines[i] = ','.join(ls)
        with open(file_name + '_out', 'w') as file_out:
            file_out.writelines(lines)
except Exception as err:
    print(err)


  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7516698
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:python读csv文件中文乱码问题简单解决(附python遍历目录下csv文件并输出内容的代码)
  • 除此之外, 这篇博客: 使用python对csv文件进行预处理中的 python数据清洗:替换csv文件中的特殊符号、查找文件路径 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

  • 假设存在一列数据,需要将 ‘+’删去或是替换成空
    在这里插入图片描述

  • 您还可以看一下 李云老师的Python数据清洗实战入门课程中的 csv文件读写小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    我可以提供一种简便的方法来剔除CSV文件列表中的字符串中的英文字符。可以使用pandas库中的str.replace()方法来替换字符串中的英文字母,代码如下:

    import pandas as pd
    
    # 读取CSV文件列表
    csv_list = ["file1.csv", "file2.csv", "file3.csv"]
    
    for file in csv_list:
        # 读取CSV文件
        df = pd.read_csv(file)
    
        # 剔除英文字母
        df = df.apply(lambda x: x.str.replace('[a-zA-Z]', '') if x.dtype == "object" else x)
    
        # 输出处理后的CSV文件
        df.to_csv(file, index=False)
    

    这段代码首先读取CSV文件列表,然后循环遍历每一个CSV文件,读取并处理数据。x.str.replace('[a-zA-Z]', '')表示将字符串中所有的英文字母都替换为空字符串,x.dtype == "object"表示只对字符串类型进行处理。处理完毕后用to_csv方法将处理后的数据写入CSV文件中。

    另外,如果要对每一列的最大值和平均值进行计算并添加到表的末尾,可以使用pandas库的describe方法和mean方法和max方法,代码如下:

    import pandas as pd
    
    # 读取CSV文件
    df = pd.read_csv("file.csv")
    
    # 计算每一列的最大值和平均值
    max_values = df.max()
    mean_values = df.mean()
    
    # 将计算结果添加到表的末尾
    df.loc["max"] = max_values
    df.loc["mean"] = mean_values
    
    # 输出处理后的CSV文件
    df.to_csv("file.csv", index=False)
    

    这段代码首先读取CSV文件,然后使用max方法和mean方法计算每一列的最大值和平均值。然后使用loc方法将计算结果添加到表的末尾,最后使用to_csv方法将处理后的数据写入CSV文件中。