python以时间分批从 pg数据库读取数据 按用户分组时间排序
时间: 2023-05-20 16:07:36 浏览: 172
您可以使用 psycopg2 库来连接 PostgreSQL 数据库,使用 Python 中的 Pandas 库来处理数据。以下是一个示例代码段,它从数据表中按指定的时间分批读取数据,按照用户分组并按照时间进行排序。
```python
import psycopg2
import pandas as pd
import time
# 创建数据库连接
conn = psycopg2.connect(database="your_database", user="your_username", password="your_password", host="your_host", port="your_port")
# 指定时间段和批次大小
start_time = time.strptime("2022-01-01", "%Y-%m-%d")
end_time = time.strptime("2022-01-31", "%Y-%m-%d")
batch_size = 1000
# 读取数据
rows = []
with conn.cursor() as cur:
cur.execute("SELECT * FROM your_table WHERE timestamp BETWEEN %s AND %s", (start_time, end_time))
while True:
batch = cur.fetchmany(batch_size)
if not batch:
break
rows.extend(batch)
# 将数据转换为 Pandas DataFrame,并按用户和时间排序
df = pd.DataFrame(rows, columns=["timestamp", "user_id", "data"])
df = df.sort_values(["user_id", "timestamp"])
# 关闭数据库连接
conn.close()
```
请注意,这只是一个示例代码段。您需要根据您的情况进行必要的修改,如更改数据库连接参数和数据表结构。
阅读全文