我有以下数据框,包含datetime,lon和lat变量。每秒收集该数据,这意味着每个日期重复60次
我正在使用lat,lon值进行一些计算,最后我需要编写 这个数据到Postgres表。
2016-07-27 06:43:45 50.62 3.15
2016-07-27 06:43:46 50.67 3.22
2016-07-28 07:23:45 52.32 3.34
2016-07-28 07:24:46 52.67 3.45
目前我有1000万条记录。如果我使用整个数据帧进行计算,则需要更长的时间。
如何为每个日期循环,将其写入数据库并清除数据框?
我已将datetime变量转换为日期格式
df['date'] = df['datetime'].dt.date
df = df.sort(['datetime'])
my computation is
df.loc[(df['lat'] > 50.10) & (df['lat'] <= 50.62), 'var1'] = 1
df.loc[(df['lan'] > 3.00) & (df['lan'] <= 3.20), 'var2'] = 1
将其写入DB
df.to_sql('Table1', engine,if_exists = "replace",index = False)
答案 0 :(得分:1)
您是否考虑过使用groupby()
功能?您可以使用它将每个'日期'视为单独的DataFrame,然后运行您的计算。
for sub_df in df.groupby('date'):
# your computations