python 读取文件夹下所有 csv xls xlsx文件 并简单清洗数据 保存到 dataframe 中

文件夹参数

path_list 要读取的文件夹列表

导包

import pandas as pd
import os
没有的话直接pip下载就行
pip install pandas
pip install os

  • 读取单个文件夹下所有文件
path = 'D:/XXXXX'   #文件夹路径
data_train = pd.DataFrame()
listFiles = os.listdir(path)
for i in files:
    if (i[-3:] == 'csv'):
        data_tmp = pd.read_csv(path + '/' + i, engine='python', encoding='utf-8')
    else:
        data_tmp = pd.read_excel(path + '/' + i)
    data_tmp ['index']= data_tmp ['index'].fillna(data_tmp ['index'].mode()[0])  #众数替换nan
    # data_tmp ['index'] = data_tmp ['index'].fillna(pd['index'].mean())  # 平均数替换nan
    # data_tmp ['index'] = data_tmp ['index'].fillna(0) # 用0替换nan
                
    data_train = data_train.append(data_tmp)
  • 读取多个文件夹
# 读取多个文件夹
path_list = ["文件夹1","文件夹2"]
    # test_file_path = "C:xxx.csv" #测试集文件路径,这里不需要
    data_train = pd.DataFrame()
    for path in path_list:
        for root, dirs, files in os.walk(path):
            print(files)
            for i in files:
                if (i[-3:] == 'csv'):
                    data_tmp = pd.read_csv(path + '/' + i, engine='python', encoding='utf-8')
                else:
                    data_tmp = pd.read_excel(path + '/' + i)
                data_tmp ['index']= data_tmp ['index'].fillna(data_tmp ['index'].mode()[0])  #众数替换nan
                # data_tmp ['index'] = data_tmp ['index'].fillna(pd['index'].mean())  # 平均数替换nan
                # data_tmp ['index'] = data_tmp ['index'].fillna(0) # 用0替换nan
                
                data_train = data_train.append(data_tmp)

data_train 即为所有文件数据

数据清洗

检查缺失值

data.isnull().sum()  #可以统计每列缺失值总数

缺失值处理

# nan数据处理
# 以固定值替换
data.fillna('0')  #这里以0来替换nan数据

# 针对某一缺失列进行替换

data['aaa'] = data['aaa'].fillna('0')  #用0来替换aaa列中的nan数据


使用众数 平均数 中位数 插值函数 横向/纵向前面的数据 进行替换

# 众数
data['aaa'] = data['aaa'].fillna(data['aaa'].mode())

# 平均数
data['aaa'] = data['aaa'].fillna(data['aaa'].mean())

# 中位数
data['aaa'] = data['aaa'].fillna(data['aaa'].median())

# 插值函数  据框中缺失值上下的数字平均值
data['aaa'] = data['aaa'].fillna(data['aaa'].interpolate())

# 横向(行)前面的值替换
data = data.fillna(axis=1, method='ffill')

# 纵向(列)前面的值替换
data = data.fillna(axis=1, method='ffill')

直接删除缺失值所在行

data = data.dropna()

指定删除某列的缺失值所在行

data = data.dropna(subset=['score'])

处理非标准缺失值

可以先使用 data.replace() 函数进行替换,然后再使用上述方法

  • 2
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python读取txt文件并提取表关键字所在行保存为Excel的方法如下: 首先,我们需要安装openpyxl库来操作Excel文件,可以使用以下命令在Python环境安装openpyxl库: ```python pip install openpyxl ``` 接下来,我们可以使用以下代码来读取txt文件并提取表包含关键字的行保存为Excel: ```python import openpyxl # 打开txt文件 with open('file.txt', 'r', encoding='utf-8') as file: # 读取txt文件的所有行 lines = file.readlines() # 创建一个新的Excel工作簿 workbook = openpyxl.Workbook() # 选择第一个工作表 worksheet = workbook.active # 遍历每一行 for line_index, line in enumerate(lines): # 判断关键字是否在该行 if '关键字' in line: # 提取包含关键字的行并保存到Excel worksheet.append(line.split('\t')) # 如果行数据是通过制表符进行分隔的,可以使用split('\t')进行分割,如数据是通过其他方式分隔的,请替换分隔符 # 保存Excel文件 workbook.save('output.xlsx') ``` 在上述代码,我们通过`open()`函数打开txt文件并使用`readlines()`方法读取所有行。然后,我们使用openpyxl库创建一个新的Excel工作簿和工作表。接下来,我们遍历每一行并判断关键字是否在该行。如果关键字存在于该行,我们将使用`append()`方法将该行数据添加到Excel工作表。最后,我们使用`save()`方法保存Excel文件。 请将代码的`file.txt`替换为你要读取的txt文件的路径,将`关键字`替换为你要提取的关键字,将`output.xlsx`替换为保存的Excel文件名。 ### 回答2: 我们可以使用Pythonpandas库来实现这个功能。首先,我们需要读取txt文件并将其存储为dataframe对象。接下来,我们可以使用pandas的过滤功能来提取包含关键字的行。最后,我们可以将结果保存为excel文件。 以下是实现上述功能的代码示例: ```python import pandas as pd # 读取txt文件并将其保存dataframe对象 df = pd.read_csv('input.txt', sep='\t', header=None) # 提取包含关键字的行 keyword = '关键字' filtered_df = df[df.apply(lambda row: keyword in row.to_string(), axis=1)] # 将结果保存为excel文件 filtered_df.to_excel('output.xlsx', index=False, header=False) ``` 在上述代码,`input.txt`是要读取的txt文件路径。你需要将其替换为你自己的文件路径。`关键字`是你要提取的关键字,你也可以根据需要进行替换。最后,`output.xlsx`是保存提取结果的excel文件路径。你可以根据自己的需求进行更改。 请确保在运行代码之前已经安装了pandas库。你可以使用以下命令来安装pandas: ``` pip install pandas ``` 希望对你有所帮助! ### 回答3: 使用Python读取txt文件并提取表关键字所在行保存为Excel,可以按照以下步骤操作: 1. 导入所需模块:首先需要导入openpyxl、xlwt和codecs等模块,openpyxl用于创建和写入Excel文件,xlwt用于保存Excel文件,codecs用于读取txt文件。 2. 打开txt文件:使用codecs模块的open()函数打开待提取的txt文件,指定文件名和读取模式。 3. 创建Excel文件:使用openpyxl模块创建一个新的Excel文件,可以使用Workbook()函数创建空白的Excel工作簿。 4. 创建Excel表格并写入数据:使用openpyxl模块的create_sheet()函数创建一个新的工作表,并使用append()函数将关键字所在行的数据写入到工作表。 5. 保存Excel文件:使用xlwt模块的save()函数保存修改后的Excel文件,指定文件名和保存路径。 下面是一个简单的示例代码: ```python import codecs from openpyxl import Workbook import xlwt # 打开txt文件 with codecs.open('data.txt', 'r', encoding='utf-8') as file: lines = file.readlines() # 创建Excel文件 wb = Workbook() # 创建Excel表格并写入数据 sheet = wb.create_sheet(title='Sheet1') for line in lines: if '关键字' in line: # 根据关键字提取所在行 data = line.split('\t') # 假设数据以制表符分隔 sheet.append(data) # 保存Excel文件 wb.save('result.xls') ``` 以上代码将会读取名为data.txt的txt文件,提取包含关键字的行,并将其保存为result.xls的Excel文件。请注意,根据具体情况调整数据的分隔符和文件路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值