gpt4 book ai didi

python csv阅读器没有读取所有行

转载 作者:太空狗 更新时间:2023-10-30 01:27:29 25 4
gpt4 key购买 nike

所以我在一个 CSV 文件中有大约 5008 行,总共 5009 行带有标题。我正在同一个脚本中创建和编写这个文件。但是当我最后阅读它时,使用 pandas pd.read_csv 或 python3 的 csv 模块,并打印 len,它输出 4967。我检查了文件中是否有任何可能混淆 python 但没有看到的奇怪字符。所有数据均以逗号分隔。

我也在 sublime 中打开它,它显示 5009 行而不是 4967。

我可以尝试 pandas 的其他方法,如 merge 或 concat,但如果 python 不能正确读取 csv,那也没用。

这是我试过的一种方法。

df1=pd.read_csv('out.csv',quoting=csv.QUOTE_NONE, error_bad_lines=False)
df2=pd.read_excel(xlsfile)

print (len(df1))#4967
print (len(df2))#5008

df2['Location']=df1['Location']
df2['Sublocation']=df1['Sublocation']
df2['Zone']=df1['Zone']
df2['Subnet Type']=df1['Subnet Type']
df2['Description']=df1['Description']

newfile = input("Enter a name for the combined csv file: ")
print('Saving to new csv file...')
df2.to_csv(newfile, index=False)
print('Done.')

target.close()

我尝试的另一种方法是

dfcsv = pd.read_csv('out.csv')

wb = xlrd.open_workbook(xlsfile)
ws = wb.sheet_by_index(0)
xlsdata = []
for rx in range(ws.nrows):
xlsdata.append(ws.row_values(rx))

print (len(dfcsv))#4967
print (len(xlsdata))#5009

df1 = pd.DataFrame(data=dfcsv)
df2 = pd.DataFrame(data=xlsdata)

df3 = pd.concat([df2,df1], axis=1)

newfile = input("Enter a name for the combined csv file: ")
print('Saving to new csv file...')
df3.to_csv(newfile, index=False)
print('Done.')

target.close()

但无论我以何种方式尝试 CSV 文件都是实际问题,python 正在正确写入它但没有正确读取它。

编辑:最奇怪的部分是我在运行代码时绝对没有编码错误或任何错误...

Edit2:尝试在第一个代码示例中使用 nrows 参数对其进行测试,最多可处理 4000 行。当我指定 5000 行时,它只显示 4967。

Edit3:用我的数据手动保存 csv 文件,而不是使用程序编写的文件,它读取了 5008 行。为什么 python 没有正确写入 csv 文件?

最佳答案

我也遇到了这个问题。我意识到我的某些行有开放式引号,出于某种原因会干扰读者。

因此,例如,某些行被写为:

GO:0000026  molecular_function  "alpha-1
GO:0000027 biological_process ribosomal large subunit assembly
GO:0000033 molecular_function "alpha-1

这导致行被错误读取。 (不幸的是,我对 csvreader 的工作原理知之甚少,无法告诉您原因。希望有人能澄清引用行为!)

我刚刚删除了引号,结果成功了。

已编辑:如果您想保留引号,此选项也适用:

quotechar=None

关于python csv阅读器没有读取所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38854118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com