pandas读取txt文件
读取txt文件需要确定txt文件是否符合基本的格式,也就是是否存在\t,,,等特殊的分隔符
一般txt文件长成这个样子
txt文件举例
下面的文件为空格间隔
1
2
3
4
|
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都可以
1
2
3
4
5
6
7
|
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列
1
2
3
4
5
6
7
|
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分隔符参数
1
|
df = pd.read_csv( "./test.txt" ,sep = ' ' )
|
read_pickle函数
read_pickle is only guaranteed to be backwards compatible to pandas 0.20.3.
Examples
1
2
3
4
5
6
7
8
9
|
>>> 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" )
|
1
2
3
4
5
6
7
8
|
>>> 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
|
1
2
|
>>> import os
>>> os.remove( "./dummy.pkl" )
|
补充:线上部署模型 读取pkl文件跟excel
先把生成的excel文件(pkl文件)准备好, 放到本地测试的路径下
1
2
3
4
5
6
7
8
9
10
11
12
13
|
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()
|
本地测试
给线上传代码
找到主文件路径下面运行测试文件 python3 xxx.py
不好使的话去项目文件 框架下面 写一个测试文件 把那个方法写进来 python3 XXX.py就OK了
以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。如有错误或未考虑完全的地方,望不吝赐教。
原文链接:https://blog.csdn.net/zanlinux/article/details/109854803