csv.reader与pandas-python的区别

csv.reader与pandas-python的区别,python,pandas,Python,Pandas,我正在使用csv.reader和pandas导入csv文件。但是,同一文件中的行数不同 reviews = [] openfile = open("reviews.csv", 'rb') r = csv.reader(openfile) for i in r: reviews.append(i) openfile.close() print len(reviews) 结果是10000(这是正确的值)。但是,pandas返回不同的值 df = pd.read_csv("reviews.c

我正在使用csv.reader和pandas导入csv文件。但是,同一文件中的行数不同

reviews = []
openfile = open("reviews.csv", 'rb')
r = csv.reader(openfile)
for i in r:
    reviews.append(i)
openfile.close()
print len(reviews)
结果是10000(这是正确的值)。但是,pandas返回不同的值

df = pd.read_csv("reviews.csv", header=None)
df.info()
返回9985

有人知道为什么导入数据的两种方法不同吗

我刚试过这个:

reviews_df = pd.DataFrame(reviews)
reviews_df.info()

此返回10000。< /p> < p>引用有一个名为“代码> SkIPBLANKYCHYLYS/<代码>的参数,其默认值为“代码>真< /COD>”,因此,除非将其设置为<代码> false <代码>,否则它将不读取空白行。

考虑以下示例,有两个空行:

A,B,C,D
0.07,-0.71,1.42,-0.37

0.08,0.36,0.99,0.11
1.06,1.55,-0.93,-0.90
-0.33,0.13,-0.11,0.89
1.91,-0.74,0.69,0.83
-0.28,0.14,1.28,-0.40
0.35,1.75,-1.10,1.23

-0.09,0.32,0.91,-0.08
df = pd.read_csv('test_data.csv', skip_blank_lines=False)
len(df)
10 
  df = pd.read_csv('test_data.csv', skip_blank_lines=True)
  len(df)
  8
阅读时跳过空白行=False:

A,B,C,D
0.07,-0.71,1.42,-0.37

0.08,0.36,0.99,0.11
1.06,1.55,-0.93,-0.90
-0.33,0.13,-0.11,0.89
1.91,-0.74,0.69,0.83
-0.28,0.14,1.28,-0.40
0.35,1.75,-1.10,1.23

-0.09,0.32,0.91,-0.08
df = pd.read_csv('test_data.csv', skip_blank_lines=False)
len(df)
10 
  df = pd.read_csv('test_data.csv', skip_blank_lines=True)
  len(df)
  8
阅读时跳过空白行=True:

A,B,C,D
0.07,-0.71,1.42,-0.37

0.08,0.36,0.99,0.11
1.06,1.55,-0.93,-0.90
-0.33,0.13,-0.11,0.89
1.91,-0.74,0.69,0.83
-0.28,0.14,1.28,-0.40
0.35,1.75,-1.10,1.23

-0.09,0.32,0.91,-0.08
df = pd.read_csv('test_data.csv', skip_blank_lines=False)
len(df)
10 
  df = pd.read_csv('test_data.csv', skip_blank_lines=True)
  len(df)
  8

我无法重现这个问题。当我在
csv
文件上运行此代码时,差异仅为一行,这就是
标题
您能给我们一个小样本输入文件来说明问题吗?如果您首先找出缺少哪些行,这应该是可能的。我以前从未见过这个问题。有没有办法找出缺少哪些行?这些知识在这一点上会很有帮助。@kevin:当然,你可以将表格写回一个新的CSV并加以区分。