繁体   English   中英

在熊猫中使用read_csv读取最后几行

[英]Reading last few rows using read_csv in pandas

我有一个这样不断增长的文件:

https|webmail.mahindracomviva.com|application/vnd.ms-sync.wbxml|158|POST|203.101.110.171
https|webmail.mahindracomviva.com||0|POST|203.101.110.171
https|webmail.mahindracomviva.com||0|POST|203.101.110.171
https|www.googleapis.com|application/x-protobuf|246|POST|74.125.200.95
https|webmail.mahindracomviva.com|application/vnd.ms-sync.wbxml|140|POST|203.101.110.171
https|webmail.mahindracomviva.com|application/x-protobuf|52|POST|203.101.110.171
https|www.googleapis.com|application/x-protobuf|502|POST|74.125.200.95
https|www.googleapis.com|application/x-protobuf|40|POST|74.125.200.95

但我只想阅读使用熊猫的最后50行。

您必须按照以下步骤操作:

  1. 首先找到CSV文件的长度,而不将整个CSV文件加载到内存中。 您必须在read_csv()中使用chunksize。

     import pandas as pd count = 0 for data in pd.read_csv('YourFile.csv',encoding = 'ISO-8859-1',chunksize = 1000): count += 1 # counting the number of chunks lastlen = len(data) # finding the length of last chunk datalength = (count*1000 + lastlen - 1000) # length of total file 
  2. 秒减要读取的行数。

     rowsdiff = datalen - 300 df = pd.read_csv('YourFile.csv',encoding = 'ISO-8859-1',skiprows = range(1,difrows), nrows = 299) 

通过这种方法,您只需要读取最后几行,而无需将整个CSV文件载入ram

尝试使用pandas tail()行如下:

filename = "your_file"
last_rows = 3
data = pd.read_csv(filename, header=None, sep = "|")
print(data.tail(last_rows))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM