Python Pandas read_table()缺少行
PandasPython Pandas read_table()缺少行,python,pandas,numpy,Python,Pandas,Numpy,Pandasread\u table函数在我试图读取的文件中缺少一些行,我无法找出原因 import pandas as pd import numpy as np filename = "whatever.txt" df_pd = pd.read_table(filename, use_cols=['FirstColumn'], skip_blank_lines=False) df_np = np.genfromtxt(filename, usecols=0) #function to c
read\u table
函数在我试图读取的文件中缺少一些行,我无法找出原因
import pandas as pd
import numpy as np
filename = "whatever.txt"
df_pd = pd.read_table(filename, use_cols=['FirstColumn'], skip_blank_lines=False)
df_np = np.genfromtxt(filename, usecols=0)
#function to count file line by line
def file_len(fname):
with open(fname) as f:
for i, l in enumerate(f):
pass
return i + 1
len_pd = len(df_pd)
len_np = len(df_np)
len_linebyline = file_len(filename)
不幸的是,我无法共享我的实际数据,因为它是一个巨大的文件,30列x 5800万行,而且受许可保护。出于某种原因,numpy和file_len方法给出了约5800万行的正确长度,但pandas方法只有约5500万行
有没有人知道是什么原因导致了这种情况,或者我如何调查它?使用以下方法,您可以尝试找到丢失的数据:
In [31]: df = pd.DataFrame({'col':[0,1,2,3,4,6,7,8]})
In [32]: a = np.arange(10)
In [33]: df
Out[33]:
col
0 0
1 1
2 2
3 3
4 4
5 6
6 7
7 8
In [34]: a
Out[34]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
In [35]: np.setdiff1d(a, df.col)
Out[35]: array([5, 9])
请提供一个可复制的样本(使用假数据)数据集-3-5行就足够了。。。请阅读@ MaXu,我在这个例子中提到的第一个列只是整数,它充当ID。我不知道如何提供一个可重复的样本,因为看起来大部分数据都是好的,但是中间有一个块导致了这个问题,但是我不知道那个块是不同的还是在哪里。感谢您提出其他问题,尽管有人猜测您的问题无法看到可复制数据集的可能性非常低。。。因此,您必须分析问题,找出熊猫一侧缺少哪些数据,然后您将知道原因或能够提供可复制的数据集。只有我的0美元。02@MaxU谢谢你的建议。我想我只是感到沮丧,因为我不知道如何重现这个问题,如果可以,我很可能自己就能解决这个问题。我知道这个问题的措辞很难回答