欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

pandas读取excel,txt,csv,pkl文件等命令的操作

程序员文章站 2022-05-05 16:03:59
pandas读取txt文件读取txt文件需要确定txt文件是否符合基本的格式,也就是是否存在\t,,,等特殊的分隔符一般txt文件长成这个样子txt文件举例下面的文件为空格间隔1 2019-03-22...

pandas读取txt文件

读取txt文件需要确定txt文件是否符合基本的格式,也就是是否存在\t,,,等特殊的分隔符

一般txt文件长成这个样子

txt文件举例

下面的文件为空格间隔

1 2019-03-22 00:06:24.4463094 中文测试 
2 2019-03-22 00:06:32.4565680 需要编辑encoding 
3 2019-03-22 00:06:32.6835965 ashshsh 
4 2017-03-22 00:06:32.8041945 eggg

读取命令采用 read_csv或者 read_table都可以

import pandas as pd
df = pd.read_table("./test.txt")
print(df)
 
import pandas as pd
df = pd.read_csv("./test.txt")
print(df)

但是,注意,这个地方读取出来的数据内容为3行1列的dataframe类型,并没有按照我们的要求得到3行4列

import pandas as pd
df = pd.read_csv("./test.txt")
print(type(df))
print(df.shape)
 
<class 'pandas.core.frame.dataframe'>
(3, 1)

read_csv函数

默认: 从文件、url、文件新对象中加载带有分隔符的数据,默认分隔符是逗号。

上述txt文档并没有逗号分隔,所以在读取的时候需要增加sep分隔符参数

df = pd.read_csv("./test.txt",sep=' ')

read_pickle函数

read_pickle is only guaranteed to be backwards compatible to pandas 0.20.3.

examples

>>> original_df = pd.dataframe({"foo": range(5), "bar": range(5, 10)})
>>> original_df
 foo bar
0 0 5
1 1 6
2 2 7
3 3 8
4 4 9
>>> pd.to_pickle(original_df, "./dummy.pkl")
>>> unpickled_df = pd.read_pickle("./dummy.pkl")
>>> unpickled_df
 foo bar
0 0 5
1 1 6
2 2 7
3 3 8
4 4 9
>>> import os
>>> os.remove("./dummy.pkl")

补充:线上部署模型 读取pkl文件跟excel

先把生成的excel文件(pkl文件)准备好, 放到本地测试的路径下

import platform
import pandas as pd
if platform.system() == 'windows':
 home_dir = r'f:\python_项目\主后台\r360_taobao\moxin' #本地地址
else:
 home_dir = r'/home/tg_master_admin_api/r360_taobao/moxin' #线上的路径找到文件前一个文件夹
def testmx():
 box = pd.read_excel(home_dir+'/规则新版设计1.xlsx', sheet_name='宜信标准评分卡')
 print("excel\t\t",box)
 box = pd.read_pickle(home_dir + '/foo.pkl')
 print("pkl\t\t",box)
if __name__ == '__main__':
 testmx()

本地测试

pandas读取excel,txt,csv,pkl文件等命令的操作

给线上传代码

找到主文件路径下面运行测试文件 python3 xxx.py

pandas读取excel,txt,csv,pkl文件等命令的操作

不好使的话去项目文件 框架下面 写一个测试文件 把那个方法写进来 python3 xxx.py就ok了

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。