【发布时间】:2017-02-08 04:33:03
【问题描述】:
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 万行。
是否有人对可能导致此问题的原因或我如何进行调查有任何想法?
【问题讨论】:
-
请提供一个可重复的样本(使用假数据)数据集——3-5行就足够了...请阅读how to make good reproducible pandas examples
-
@MaxU 我在这个例子中提到的第一列只是用作 ID 的整数。我不知道如何提供可重现的样本,因为看起来大部分数据都很好,但是中间某处有一大块导致问题,但我不知道那块有什么不同或者它在哪里。感谢您转介到其他问题
-
有人猜测你的问题看不到可重现数据集的概率非常低......所以你必须分析问题,找出 Pandas 端缺少哪些数据,然后之后,您要么知道原因,要么能够提供可重现的数据集。只是我的 0.02 美元
-
@MaxU 感谢您的建议。我想我只是很沮丧,因为我不知道如何重现这个问题,如果可以的话,我很可能能够自己解决这个问题。我知道这个问题很难回答