Python使用pandas包实现:读取文本文件data.txt(文件中每行存取一个整数),将其按照升序排序后再写入文本文件data_asc.txt文件中

一、问题描述

        已知一个文本文件(data.txt),其中存有若干数据,存储数据均为整数(不同整数之间以换行符进行的分隔),现要求使用python读取原始数据文件(文件中每行存取一个整数),将其按照升序排序之后再写入文本文件data_asc.txt文件中进行保存并且进行存储。

二、代码实现

import numpy as np#导入功能模块包
import pandas as pd
with open ("C:/Users/lenovo/Desktop/data.txt",'r') as out1:#打开原始文件
    Readeddata=out1.readlines()   
with open ("C:/Users/lenovo/Desktop/temp.txt",'w') as out2:#创建临时文件并添加列属性名称
    out2.write("number\n")
out2=open ("C:/Users/lenovo/Desktop/temp.txt",'a')#将原始文件追加至临时文件中
for x in Readeddata:
    out2.write(x)
out2.close()
dt1=pd.read_csv("C:/Users/lenovo/Desktop/temp.txt")#处理完成后以二维数表的方式读取文件数据
dt1#显示数据
dt2=dt1.sort_values(by=["number"],ascending=True)#按照列中数值对文件进行排序
dt2#显示经排序后的数据
dt2.to_csv("C:/Users/lenovo/Desktop/data_asc.txt",sep="\n",index=False,header=None)#将完成排序后的数据导出,不导出索引与列属性名称

三、解释说明

  • 选择分析处理包可以有效简化步骤同时提高运行效率;
import numpy as np#导入功能模块包
import pandas as pd
  • 为保证数据的完整性以及安全性,采用只读模式对数据进行读取;此外,建立一个临时表,用于实现对数据的排序以及添加列属性名称等最终操作;
with open ("C:/Users/lenovo/Desktop/data.txt",'r') as out1:#打开原始文件
    Readeddata=out1.readlines()   
with open ("C:/Users/lenovo/Desktop/temp.txt",'w') as out2:#创建临时文件并添加列属性名称
    out2.write("number\n")
  • Python文件打开模式的不同区分 ;
  • 将读取到的原数据文件依次按照行顺序添加至已完成创建并添加了一行数据名称的临时表中;
out2=open ("C:/Users/lenovo/Desktop/temp.txt",'a')#将原始文件追加至临时文件中
for x in Readeddata:
    out2.write(x)
out2.close()
  • 完成上述操作之后,临时表的最终存储内容既包含有添加的数据列名称,同时也有添加的原始文件中的数据文件,因此可以在此基础上直接使用python的pandas功能,以DataFrame的格式直接读取数据文件(可以有效去除数据之间由于换行存储包含的分隔符号,减少处理麻烦),最后依次使用内置功能(排序&导出)相关功能最终实现相关处理。
dt1=pd.read_csv("C:/Users/lenovo/Desktop/temp.txt")#处理完成后以二维数表的方式读取文件数据
dt1#显示数据
dt2=dt1.sort_values(by=["number"],ascending=True)#按照列中数值对文件进行排序
dt2#显示经排序后的数据
dt2.to_csv("C:/Users/lenovo/Desktop/data_asc.txt",sep="\n",index=False,header=None)#将完成排序后的数据导出,不导出索引与列属性名称

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值