gpt4 book ai didi

python-3.x - 带有 sep = '::' 的 Pandas read_table

转载 作者:行者123 更新时间:2023-12-05 04:03:19 25 4
gpt4 key购买 nike

我正在学习 Python for Data Analysis,在第 2 章中有我正在学习的介绍性示例。在第 27 页,它显示了以下代码:

import pandas as pd
users = pd.read_table('ml-1m/users.dat', sep='::', header=None,
names=unames)

这是 github .dat 文件的链接: https://github.com/wesm/pydata-book/tree/2nd-edition/datasets/movielens

运行此代码时出现以下错误:

(base) C:\Users\d.kelly\Desktop\Python\PforDA>pforda.py
C:\Users\d.kelly\Desktop\Python\PforDA\PforDA.py:3: ParserWarning: Falling back
to the 'python' engine because the 'c' engine does not support regex separators
(separators > 1 char and different from '\s+' are interpreted as regex); you can
avoid this warning by specifying engine='python'.
users = pd.read_table('users.dat', sep = '::', header = None, names = unames)

我正在使用 Anaconda 和 Python 3 - 很确定这本书是为 Python 2.7 编写的,但我仍然想知道如何让这个示例在没有错误消息的情况下运行。 Wes 是个聪明人,我相信我会再次遇到 2 位数分隔符。

我的问题是,在 Python 3 中,使用 Pandas 的 read_table 读取 2 位分隔符而不收到警告的正确方法是什么?

最佳答案

参数 header=None 不是必需的,因为已定义参数 names,为避免警告添加 engine='python':

unames = ['a','b','c', 'd']
users = pd.read_table('users.dat', sep='::', names=unames, engine='python')
#alternative
#users = pd.read_csv('users.dat', sep='::', names=unames, engine='python')
print (users.head())
a b c d
1 F 1 10 48067
2 M 56 16 70072
3 M 25 15 55117
4 M 45 7 02460
5 M 25 20 55455

read_table 之间的区别和 read_csv在默认分隔符中,如果定义自定义两者的工作方式相同。

pandas.read_table
sep : str, default t (tab-stop)

pandas.read_csv
sep : str, default ','

关于python-3.x - 带有 sep = '::' 的 Pandas read_table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53612319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com