Isonjululwe: iPandas Timedelta ukuya kwipostgres

Kwihlabathi lohlalutyo lwedatha, ukuphatha idatha yochungechunge lwexesha ngumba obalulekileyo. Enye yeelayibrari ezisetyenziswa ngokuqhelekileyo kule njongo yi-**pandas** ngolwimi lweprogram yePython. Umsebenzi oqhelekileyo xa usebenza kunye nedatha yochungechunge lwexesha kukuguqula ukuhluka kwexesha phakathi kweziganeko ezahlukeneyo kwifomathi eqhelekileyo. Kulapho iPandas Timedelta isiza khona. Nangona kunjalo, xa usebenza ngogcino lwedatha njengePostgreSQL, ukugcina ezi timedeltas kunokuba nzima. Kule nqaku, siza kuxubusha indlela yokuguqula i-pandas i-Timedelta kwifomathi enokugcinwa kwi-PostgreSQL, kwaye ifumane kwakhona ngelixa igcina ukumelwa kwayo okuchanekileyo.

Isisombululo kwiNgxaki

Isisombululo sale ngxaki sibandakanya ukusebenzisa ii-pandas kunye neelayibrari ze-psycopg2, ezisetyenziswa ngokubanzi ukunyanzeliswa kwedatha kunye nolawulo lwedatha ye-PostgreSQL, ngokulandelanayo. Ithala leencwadi le-psycopg2 linenkxaso yokuphatha i-timedeltas, kusetyenziswa uhlobo lwedatha `lokuphumla` kwiPostgreSQL. Siza kusebenzisa eli nqaku ukugcina iipandas zethu zeTimedelta kwiPostgreSQL kwaye siyibuyisele kwifomathi yayo efanelekileyo.

Okokuqala, masingenise amathala eencwadi ayimfuneko kwaye siseke uqhagamshelo kwisiseko sedatha yethu yePostgreSQL.

import pandas as pd
import psycopg2

conn = psycopg2.connect(database="your_database",
                        user="your_user",
                        password="your_password",
                        host="your_host",
                        port="your_port")

iPandas Timedelta kunye nePostgreSQL Interval

I-pandas iTimedelta sisixhobo esinamandla sokubonisa umahluko wexesha ngendlela engaguqukiyo nefundekayo. Kulula ukwenza kunye nokuxhaphaza izinto ze-timedelta kwi-pandas, kodwa xa kuziwa ekugcinweni kwedatha ye-PostgreSQL, kufuneka siyiguqule kwifomathi efanelekileyo.

I-PostgreSQL inikezela ngohlobo lwedatha `lokuphumla` ukugcina amaxesha ngamaxesha. Olu hlobo lwedatha lunokumela ubude bexesha kwiigranulari ezahlukeneyo, njengeentsuku, iiyure, imizuzu, kunye nemizuzwana. Ukuze ugcine i-pandas ye-Timedelta kwi-database ye-PostgreSQL, kufuneka siyiguqulele kwisithuba se-PostgreSQL.

Masenze isampulu yePandas DataFrame ngeTimedelta ikholamu:

data = {'event_name': ['start', 'end'],
        'time': [pd.Timestamp('2021-01-01'), pd.Timestamp('2021-01-03')]}
df = pd.DataFrame(data)
df['difference'] = df['time'].diff()
print(df)

Ngoku masenze umsebenzi wokufaka le datha kwisiseko sedatha yethu yePostgreSQL kwaye siguqule idatha yeTimedelta kwisithuba esihambelana nePostgreSQL.

def insert_data(event_name, time, difference, conn):
    query = """
    INSERT INTO timedeltas (event_name, time, difference)
    VALUES (%s, %s, %s)
    """
    with conn.cursor() as cur:
        cur.execute(query, (event_name, time, difference))
    conn.commit()

Ngokusebenzisa lo msebenzi, sinokufaka idatha yethu yePandas DataFrame kwisiseko sedatha yePostgreSQL:

for _, row in df.iterrows():
    event_name, time, difference = row['event_name'], row['time'], row['difference']
    insert_data(event_name, time, difference, conn)

Ukufumana kwakhona i-Timedeltas kwi-PostgreSQL

Nje ukuba idatha ye-pandas ye-Timedelta igcinwe kwi-PostgreSQL njengezithuba, sinokuzifumana ngokulula kwaye siyiguqulele kwi-pandas ye-Timedeltas ngelixa ufunda idatha.

Masenze umsebenzi wokuthatha idatha kwitafile yethu yePostgreSQL:

def fetch_data(conn):
    query = "SELECT event_name, time, difference FROM timedeltas"
    data = pd.read_sql(query, conn)
    data['difference'] = pd.to_timedelta(data['difference'])
    return data

Ngalo msebenzi, sinokulanda kwaye siprinte idatha kwisiseko sedatha yethu yePostgreSQL:

result = fetch_data(conn)
print(result)

Idatha ethathwe kwi-PostgreSQL ngoku ine-Timedeltas yayo emelwe ngokufanelekileyo njenge-pandas Timedeltas.

Ukuqukumbela, ukuguqula i-pandas i-Timedelta kwifomathi efanelekileyo kwi-PostgreSQL yokugcinwa kunye nokuyibuyisela kwimo yayo yokuqala yinkqubo ecacileyo. Ngokusebenzisa iipandas ezinamandla kunye namathala eencwadi e-psycopg2, sinokuphatha ngokulula idatha yoluhlu lwexesha kunye nokugcina ukumelwa kwayo okufanelekileyo, kokubini kuhlalutyo lwethu lwedatha kunye nokugcinwa kwedatha.

Izithuba ezihambelanayo:

Shiya Comment