excel转txt

文章描述了一个Python脚本,使用pandas和numpy库读取、处理Excel文件中的井下测井数据,包括数据筛选、删除空值、列重命名、时间列重置和格式转换,最后保存为新Excel和TXT文件。
摘要由CSDN通过智能技术生成
import pandas as pd
import numpy as np
# 文件列表
#苏5-4-35H1第八段秒点数据csv苏5-4-35H1第二段秒点数据.csv苏5-4-35H1第六段秒点数据.csv苏5-4-35H1第七段秒点数据.csv苏5-4-35H1第三段秒点数据csv苏5-4-35H1第四段秒点数据.csv苏5-4-35H1第五段秒点数据csv苏5-4-35H1第一段秒点数据csv
# file_names = [
#     '苏5-4-35H1第八段60分点数据.xls',
#     '苏5-4-35H1第二段60分点数据.xls',
#     '苏5-4-35H1第六段60分点数据.xls',
#     '苏5-4-35H1第七段60分点数据.xls',
#     '苏5-4-35H1第三段60秒数据.xls',
#     '苏5-4-35H1第四段60分点数据.xls',
#     '苏5-4-35H1第五段60分点数据.xls',
#     '苏5-4-35H1第一段60分点数据.xls'
# ]
file_names = [
    '苏5-4-35H1第八段秒点数据.xls',
    '苏5-4-35H1第二段秒点数据.xls',
    '苏5-4-35H1第六段秒点数据.xls',
    '苏5-4-35H1第七段秒点数据.xls',
    '苏5-4-35H1第三段秒点数据.xls',
    '苏5-4-35H1第四段秒点数据.xls',
    '苏5-4-35H1第五段秒点数据.xls',
    '苏5-4-35H1第一段秒点数据.xls'
]

# 文件基础路径苏5-4-35H1-秒点txt版数据
# base_path = 'C:\\Users\\H.Jenkin\\Desktop\\苏5-4-35H1分点数据txt版\\'

base_path = 'C:\\Users\\H.Jenkin\\Desktop\\su5\\苏5-4-35H1-秒点txt版数据\\'
# 指定要保留的列名列表
columns_to_keep = ['时间', '砂浓度(套管)','压力(套管)', '排量(套管)' ]

# 列名映射
column_mapping = {'时间': 'Time', '压力(套管)': 'Treating Pressure', '排量(套管)': 'Slurry Rate',
                  '砂浓度(套管)': 'Prop Conc.'}

for file_name in file_names:
    # 完整的输入文件路径
    input_file_path = base_path + file_name

    # 创建输出文件路径
    output_file_path_excel = base_path + file_name.replace('.xls', '_filtered.xls')
    output_file_path_txt = base_path + file_name.replace('.xls', '.txt')

    # # 使用pandas读取Excel文件
    df = pd.read_excel(input_file_path)


    # 选取指定的列
    filtered_df = df[columns_to_keep]

    # 获取空行的索引
    empty_indexes = filtered_df[filtered_df.isnull().all(axis=1)].index

    # 删除空行的上一行数据
    for index in empty_indexes:
        if index - 1 < len(filtered_df):
            filtered_df = filtered_df.drop(index - 1)

    # 删除包含空值的行
    filtered_df = filtered_df.dropna()

    # 重命名列
    filtered_df = filtered_df.rename(columns=column_mapping)

    # # 重置索引并更新'Time'列
    # filtered_df = filtered_df.reset_index(drop=True)
    # filtered_df['Time'] = filtered_df.index - 1  # Starting from 0
    # # Modify the value in the first column and third row to Min	(kg/m3)	(MPa)	(m3/min)
    # filtered_df.loc[0, 'Time'] = '(Min)'
    # filtered_df.loc[0, 'Prop Conc.'] = '(kg/m3)'
    # filtered_df.loc[0, 'Treating Pressure'] = '(Mpa)'
    # filtered_df.loc[0, 'Slurry Rate'] = '(m3/min)'

    import numpy as np

    # 重置索引并更新'Time'列
    filtered_df = filtered_df.reset_index(drop=True)
    # 生成等差数列作为新的'Time'列,个数为DataFrame的长度,并保留小数点后三位
    num_rows = len(filtered_df)
    time_values = np.arange(start=-0.01666, stop=num_rows * 0.01666, step=0.01666)[:num_rows]
    #保留小数点后4位
    filtered_df['Time'] = np.round(time_values, 4)
    # Modify the value in the first column and third row to Min	(kg/m3)	(MPa)	(m3/min)
    filtered_df.loc[0, 'Time'] = '(Min)'
    filtered_df.loc[0, 'Prop Conc.'] = '(kg/m3)'
    filtered_df.loc[0, 'Treating Pressure'] = '(MPa)'
    filtered_df.loc[0, 'Slurry Rate'] = '(m3/min)'

    # # 将筛选后的数据框保存到新的Excel文件
    # filtered_df.to_excel(output_file_path_excel, index=False, engine='xlwt')

    # 将筛选后的数据框保存到TXT文件
    filtered_df.to_csv(output_file_path_txt, sep='\t', index=False)

    print(f'Filtered Excel file for {file_name} has been saved to: {output_file_path_excel}')
    print(f'Filtered TXT file for {file_name} has been saved to: {output_file_path_txt}')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值