[英]Python: How to write to CSV and append date from a DataFrame to the filename
[英]How to loop through a date range in Python query string and append results to a dataframe/csv
我正在使用 pymysql 連接到 python 中的 mysql 數據庫。 我想在日期范圍內的每一天運行查詢並將結果附加到數據框中或直接導出到 csv(以在一個地方獲取數據為准)。
不一定必須使用熊貓來完成。
到目前為止我嘗試過的:
import pandas as pd
import pymysql
from datetime import date
dates = [
date(year=2016, month=1, day=12),
date(year=2016, month=1, day=13),
date(year=2016, month=1, day=14),
]
conn = pymysql.connect(...)
cursor = conn.cursor()
frame = []
for date in dates:
query = """SELECT * FROM table WHERE date = {date}""".format(date=date)
cursor.execute(query)
data = cursor.fetchall()
df = pd.DataFrame(list(data))
frame.append(df)
conn.close()
或者嘗試類似以下的日期:
from datetime import date, timedelta
start = date(2015, 9, 9)
end = date.today()
week = timedelta(days=7)
mydate = start
while mydate < end:
print("{date.day:02}{date.month:02}{date.year}".format(date=mydate))
mydate += week
我遇到的問題是將所有內容正確地拼湊在一起並使其工作......任何幫助將不勝感激。 謝謝
嘗試以下操作來查詢您的數據庫並將結果集作為pandas.DataFrame
import pandas as pd
import pymysql
from datetime import date
dates = [
date(year=2016, month=1, day=12),
date(year=2016, month=1, day=13),
date(year=2016, month=1, day=14),
]
conn = pymysql.connect(...)
query = """SELECT * FROM table WHERE date IN ({})""".format(','.join(dates))
df = pd.read_sql(query, con=conn)
conn.close()
pandas
有一個內置的方法來利用你的數據庫連接來執行和返回作為pd.DataFrame
結構的查詢。 然后您可以運行df.to_csv
來導出您的結果。 在query
變量中,請記住它是一個str
類型,因此在 python 的幫助下正確格式化查詢是一個問題,這就是我們使用的','.join(dates)
將返回列表元素字符串,以逗號分隔。 請記住,您可能需要轉換日期以匹配數據庫中存在的任何日期格式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.