Yakagadziriswa: pandas Timedelta kune postgres

Munyika yekuongorora data, kubata nguva yakatarwa data chinhu chakakosha. Imwe yemaraibhurari anonyanya kushandiswa nekuda kweichi ** pandas ** mumutauro wePython programming. Basa rakajairwa kana uchishanda nenguva yakatevedzana data ndeyekushandura misiyano yenguva pakati pezviitiko zvakasiyana kuita yakajairwa fomati. Apa ndipo panouya pandas Timedelta inobatsira. Nekudaro, kana uchishanda nemadhatabhesi sePostgreSQL, kuchengeta idzi timedeltas kunogona kuve kwakaoma. Muchinyorwa chino, tichakurukura maitiro ekushandura pandas Timedelta kuita fomati inogona kuchengetwa muPostgreSQL, uye kuitora uchichengetedza iyo inomiririra kwayo.

Mhinduro kuDambudziko

Mhinduro yedambudziko iri inosanganisira kushandisa pandas uye psycopg2 maraibhurari, ayo anoshandiswa zvakanyanya pakugadzirisa data uye PostgreSQL dhatabhesi manejimendi, zvichiteerana. Iyo psycopg2 raibhurari ine rutsigiro rwekubata timedeltas, uchishandisa iyo `interval` data data muPostgreSQL. Isu tichakwidziridza ichi chimiro kuchengetedza yedu pandas Timedelta muPostgreSQL uye toidzoreredza muchimiro chayo.

Kutanga, ngatitorei kunze maraibhurari anodiwa uye tiise chinongedzo kune yedu PostgreSQL dhatabhesi.

import pandas as pd
import psycopg2

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

pandas Timedelta uye PostgreSQL Interval

pandas Timedelta chishandiso chine simba chekuratidza misiyano yenguva nenzira inowirirana uye inoverengwa. Zviri nyore kugadzira uye kushandisa timedelta zvinhu mupandas, asi kana zvasvika pakuzvichengeta muPostgreSQL dhatabhesi, isu tinofanirwa kuzvishandura kune iyo yakakodzera fomati.

PostgreSQL inopa iyo `interval` data data kuchengetedza nguva dzenguva. Rudzi rwedata urwu runogona kumiririra nguva muzvikamu zvakasiyana, semazuva, maawa, maminetsi nemasekonzi. Kuti uchengetedze pandas Timedelta muPostgreSQL dhatabhesi, isu tinofanirwa kuishandura kuti ive nguva yePostgreSQL.

Ngatigadzire samuenzaniso pandas DataFrame ine Timedelta column:

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)

Zvino ngatigadzirei basa rekuisa iyi data muPostgreSQL dhatabhesi uye shandura iyo Timedelta data kuPostgreSQL-inoenderana nguva.

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()

Tichishandisa basa iri, tinogona kuisa yedu pandas DataFrame data muPostgreSQL dhatabhesi:

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

Kutora Timedeltas kubva kuPostgreSQL

Kana iyo pandas yeTimedelta data yachengetwa muPostgreSQL senguva dzepakati, tinogona kuzvitora zviri nyore uye tozvishandura kuva pandas Timedeltas tichiverenga data.

Ngatigadzirei basa rekutora iyo data kubva kune yedu PostgreSQL tafura:

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

Nebasa iri, tinogona kutora uye kudhinda iyo data kubva kune yedu PostgreSQL dhatabhesi:

result = fetch_data(conn)
print(result)

Iyo data yakatorwa kubva kuPostgreSQL ikozvino ine Timedeltas yayo inomiririrwa nemazvo se pandas Timedeltas.

Mukupedzisa, kushandura pandas Timedelta kune fomati yakakodzera kuPostgreSQL kuchengetedza uye kuidzosera muchimiro chayo chepakutanga inzira yakatwasuka. Nekushandisa pandas ane simba uye psycopg2 maraibhurari, isu tinokwanisa nyore kubata nguva yakatevedzana data uye kuchengetedza inomiririra kwayo, mukuongorora kwedu data uye mudura redu rekuchengetedza.

Related posts:

Leave a Comment