pandas读取txt、csv、excel及pkl文件的方法与部署示例
本文详解使用pandas读取txt、csv、excel及pkl文件的具体命令。重点解析read_csv与read_table在处理非标准分隔符txt文件时的差异,通过sep参数解决列解析错误。同时提供线上部署模型时读取excel和pkl文件的完整Python代码示例,涵盖路径适配与测试流程。
pandas读取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仅保证向后兼容至pandas 0.20.3版本。
示例
>>> 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()
本地测试

将代码提交至线上环境。
找到主文件路径,在该目录下运行测试文件:python3 xxx.py。

如果上述方法无效,可在项目框架目录下编写一个测试文件,将相关方法写入其中,然后执行python3 XXX.py即可。
以上为个人经验总结,希望能为大家提供参考。若存在错误或未考虑周全之处,欢迎指正。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













