Pandas read_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万行。
是否有人对可能导致此问题的原因或如何对其进行调查有任何想法?
答案 0 :(得分:1)
使用以下方法,您可以尝试查找缺少的数据:
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])