df = pd.read_table("/media/jaideep/4F95-2DF2/test.txt", header = 11, delimiter = "|",encoding = "latin1", low_memory = False, comment = "#")
生成维度的数据框:[1100563行x 56列]
而,
df = pd.read_fwf("/media/jaideep/4F95-2DF2/test.txt", header = 11, delimiter = "|",encoding = "latin1",comment = "#")
生成尺寸为[1100654行×10列]
的DataFrame使用pd.read_table()需要考虑100行的差异,因为输入文件不是固定宽度的文件
- 请指出正确的方向,以及为什么pd.read_table()跳过了100行。谢谢!!
答案 0 :(得分:0)
请注意,read_fwf()
也会删除46列,这当然也很重要。只是眼球说行1..4,看看你是否能发现差异。
无论如何,发现差异的显而易见的方法是(视觉上)二元搜索:直观地比较df1[1:n]
和df2[1:n]
(或df1[n]
到df2[n]
)直到你看看它插入/删除行的位置。从n开始,比如n = 5,然后逐渐增加,直到找到不匹配的行。
答案 1 :(得分:0)
df = pd.read_table("/home/jaideep/data1.txt",header = 11, delimiter ="\ |", low_memory = False)
设置分隔符=“\ |”而不是delimiter =“|”为我工作。
pandas.read_table()文档声明:
要使用的分隔符。如果sep为None,则会尝试自动确定。超过1个字符且不同于's +'的分隔符将被解释为正则表达式,将强制使用python解析引擎并忽略数据中的引号。正则表达式示例:'rt'
所以也许是元字符反斜杠,。与Python字符串文字一样,反斜杠后面可以跟各种字符,以指示各种特殊序列。它也用于转义所有元字符,因此您仍然可以在模式中匹配它们;例如,如果你需要匹配[或\,你可以在它们前面加上反斜杠来删除它们的特殊含义:[或\。
答案 2 :(得分:0)
read_table
已过时,请改用read_csv
。
这是official。
供参考:
read_csv
将逗号分隔值(csv)文件读取到DataFrame中。
read_fwf
将固定宽度格式的行表读入DataFrame。