相关疑难解决方法(0)

在python中搜索文件的最后x行的最有效方法

我有一个文件,我不知道它会有多大(它可能很大,但尺寸会有很大差异).我想搜索最后10行左右,看看是否有任何一个字符串匹配.我需要尽可能快速有效地做到这一点,并且想知道是否有更好的东西:

s = "foo"
last_bit = fileObj.readlines()[-10:]
for line in last_bit:
    if line == s:
        print "FOUND"
Run Code Online (Sandbox Code Playgroud)

python search file

31
推荐指数
5
解决办法
4万
查看次数

通过csv文件中的块读取和反转数据块并复制到新的csv文件

假设我正在处理一个非常大的csv文件.所以,我只能通过chunk将数据块读入内存.预期的事件流程应如下:

1)使用pandas从csv读取数据块(例如:10行).

2)颠倒数据的顺序

3)反过来将每行复制到新的csv文件.所以每个块(10行)从反向开始写入csv.

最后,csv文件应该颠倒顺序,这应该在不将整个文件加载到Windows OS的内存中的情况下完成.

我正在尝试做一个时间序列预测我需要数据从旧到最新(第一行最旧的条目).我无法将整个文件加载到内存中我正在寻找一种方法,如果可能的话,每次都可以执行每个块.

我尝试了来自kaggle train.csvRossmann数据集的数据集.你可以从中得到它github repo

我的尝试没有正确地将行复制到新的csv文件中.

下面显示的是我的代码:

import pandas as pd
import csv

def reverse():

    fields = ["Store","DayOfWeek","Date","Sales","Customers","Open","Promo","StateHoliday",
              "SchoolHoliday"]
    with open('processed_train.csv', mode='a') as stock_file:
        writer = csv.writer(stock_file,delimiter=',', quotechar='"', 
                                                quoting=csv.QUOTE_MINIMAL)
        writer.writerow(fields)

    for chunk in pd.read_csv("train.csv", chunksize=10):
        store_data = chunk.reindex(index=chunk.index[::-1])
        append_data_csv(store_data)

def append_data_csv(store_data):
    with open('processed_train.csv', mode='a') as store_file:
        writer = csv.writer(store_file,delimiter=',', quotechar='"',
                                           quoting=csv.QUOTE_MINIMAL)
        for index, row in store_data.iterrows():
            print(row)
            writer.writerow([row['Store'],row['DayOfWeek'],row['Date'],row['Sales'],
            row['Customers'],row['Open'],row['Promo'],
            row['StateHoliday'],row['SchoolHoliday']])

reverse()
Run Code Online (Sandbox Code Playgroud)

先感谢您

python csv dataset python-3.x pandas

14
推荐指数
2
解决办法
980
查看次数

如何通过网络驱动器快速从.csv文件中获取最后一行?

我将数千个时间序列.csv存储在网络驱动器上的文件中。在更新文件之前,我首先获取文件的最后一行以查看时间戳,然后在该时间戳之后使用数据进行更新。如何才能.csv通过网络驱动器快速获取文件的最后一行,从而不必.csv仅使用最后一行就加载整个大文件?

python csv network-programming pandas python-os

5
推荐指数
1
解决办法
9621
查看次数