【发布时间】:2015-11-24 12:10:43
【问题描述】:
我有一个巨大的泡菜文件,需要每 3 小时从 dailydata 文件(csv 文件)更新一次。
有两个字段名为 TRX_DATE 和 TIME_STAMP,每两个字段的值分别为 24/11/2015 和 24/11/2015 10:19:02。(还有 50 个附加字段)
所以我要做的是首先将巨大的泡菜读取到数据帧中。然后通过与 TRX_DATE 字段进行比较来删除今天日期的任何值。
然后将该 csv 文件读取到另一个数据帧。然后附加两个数据框并再次创建新的泡菜。
我的脚本看起来像
import pandas as pd
import datetime as dt
import pickle
df = pd.read_pickle('hugedata pickle')
Today = dt.datetime.today()
df = df[(df.TRX_DATE > Today)] #delete any entries for today in main pickle
df1 = pd.read_csv(daily data csv file)
df = df.append(df1,ignore_index=True)
df.to_pickle('same huge data pickle')
问题如下
1. 阅读那个巨大的泡菜需要大量的内存和时间。
2.我需要将 df1 附加到 df 并且只应保留来自 df 的列,并且它应该排除是否附加了来自 df1 的任何新列。但是我在很多地方都得到了具有 NUN 值的新列值。
所以在这些事情上需要帮助
1.有没有办法让我只读取小型 csv 并附加到 pickle 文件...(或读取该 pickle 是强制性的)
2.可以像将csv转换为泡菜并合并两个泡菜一样完成。通过 load ,dump 方法(其实没用过)
3.如何从 TIME_STAMP 字段读取时间并获取两个时间戳之间的数据(按 TIME_STAMP 过滤)。然后将其更新到主 pickle。以前我按 TRX_DATE 值过滤。
有没有更好的方法---请提出建议。
【问题讨论】:
-
你为什么用
read_pickle而不是read_csv? -
当我从泡菜中读取时,我正在使用 read_pickle,而从 csv 中我正在使用 read_csv
标签: python pandas dataframe pickle