Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert sind; Die von diesem Forum gesetzten Cookies düfen nur auf dieser Website verwendet werden und stellen kein Sicherheitsrisiko dar. Cookies auf diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Open Source Tools und Daten
#25
Notiz 

RE: Open Source Tools und Daten

(05.01.2023, 18:03)lomo schrieb: Welche Python-Module brauche ich für so was hier:

Ich habe je 1000 Datensätze in je 100 CSV-Dateien.
Ich möchte für jeden Datensatz in der neuesten Datei recursiv nach den zum Teil übereinstimmenden Einträgen in den übrigen 99 Dateien suchen und daraus ggf. für jeden der 1000 Datensätze einen 2 dimensionales Array bzw. Tabelle erstellen, um diese dann auszuwerten.

Pandas? Pytables? Am besten beides? Was anderes?

was heißt "zum Teil übereinstimmend" heißt du hast einen fachlichen Schlüssel? Also du hast Einträge zu MSFT in deiner neusten csv und suchst alle Einträge zu MSFT in den alten Dateien?

Für sowas ist ne Datenbank schon nett. Bei so kleinen Datenmengen geht das auch mit brute force machen. Dauert völlig bescheuert programmiert unter 3 Sekunden.

Der Großteil des codes ist da um Testdaten zu erzeugen. 
  
Code:
import pandas as pd
import numpy as np
import glob
import os
import time
start_time = time.time()

# hier einen pfad für die erstellten Testdaten eintragen
my_path = "C:/Data/test/"

# test daten erzeugen
anzahl_keys = 10
anzahl_daten = 1000
anzahl_files = 100
keys = ["key_" + str(x) for x in range(anzahl_keys)]

for file in range(anzahl_files):
    if file == 1:
        filename = "new_file.csv"
    else:
        filename = "file_nr_"+ str(file)+".csv"

    pd.DataFrame(
        data = np.concatenate((np.random.choice(keys, (anzahl_daten, 1)),
                               np.random.standard_normal((anzahl_daten, 1))), axis=1),
    columns = ["key","value"]).to_csv(my_path + filename)


# daten lesen und auf die keys in der neusten filtern.
new_df = pd.read_csv(my_path + "new_file.csv")
new_keys = new_df["key"].drop_duplicates()
old_dfs = pd.concat([pd.read_csv(file).merge(new_keys,on=["key"], how = "inner")
                     for file in list(filter(lambda x: "new_file" not in x,glob.glob(os.path.join(my_path , "*.csv"))))])

all = pd.concat([new_df,old_dfs])

print("zeit? " + str( (time.time() - start_time)) )

Du müsstest konkreter werden was genau dein Ziel ist. Was sind die zwei Dimensionen? Der neue Wert und die "ähnlichen" (was heisst das?) Werte der alten Daten? Sind die Werte in der neuen csv eindeutig?

__________________
Forum-Besserwisser und Wissenschafts-Faschist


Nachrichten in diesem Thema
Open Source Tools und Daten - von Lancelot - 02.01.2023, 15:36
RE: Open Source Tools und Daten - von Lancelot - 03.01.2023, 10:44
RE: Open Source Tools und Daten - von Bucketeer - 03.01.2023, 15:52
RE: Open Source Tools und Daten - von Lancelot - 03.01.2023, 16:33
RE: Open Source Tools und Daten - von Bucketeer - 03.01.2023, 18:58
RE: Open Source Tools und Daten - von saphir - 03.01.2023, 20:39
RE: Open Source Tools und Daten - von rienneva - 04.01.2023, 07:57
RE: Open Source Tools und Daten - von Lancelot - 04.01.2023, 10:47
RE: Open Source Tools und Daten - von lomo - 04.01.2023, 11:04
RE: Open Source Tools und Daten - von Lancelot - 04.01.2023, 11:18
RE: Open Source Tools und Daten - von TomJoe - 04.01.2023, 15:33
RE: Open Source Tools und Daten - von Lancelot - 04.01.2023, 17:33
RE: Open Source Tools und Daten - von TomJoe - 04.01.2023, 21:37
RE: Open Source Tools und Daten - von rienneva - 04.01.2023, 19:17
RE: Open Source Tools und Daten - von lomo - 05.01.2023, 11:07
RE: Open Source Tools und Daten - von Lancelot - 04.01.2023, 19:24
RE: Open Source Tools und Daten - von Lancelot - 04.01.2023, 22:25
RE: Open Source Tools und Daten - von TomJoe - 04.01.2023, 23:38
RE: Open Source Tools und Daten - von Lancelot - 05.01.2023, 12:01
RE: Open Source Tools und Daten - von Lancelot - 05.01.2023, 12:08
RE: Open Source Tools und Daten - von TomJoe - 05.01.2023, 14:05
RE: Open Source Tools und Daten - von Lancelot - 05.01.2023, 14:38
RE: Open Source Tools und Daten - von TomJoe - 05.01.2023, 15:00
RE: Open Source Tools und Daten - von lomo - 05.01.2023, 18:03
RE: Open Source Tools und Daten - von Lancelot - 05.01.2023, 19:02
RE: Open Source Tools und Daten - von lomo - 06.01.2023, 11:08
RE: Open Source Tools und Daten - von lomo - 12.01.2023, 15:58
RE: Open Source Tools und Daten - von TomJoe - 12.01.2023, 16:32
RE: Open Source Tools und Daten - von lomo - 12.01.2023, 17:08
RE: Open Source Tools und Daten - von Lancelot - 13.01.2023, 14:03
RE: Open Source Tools und Daten - von Lancelot - 03.03.2023, 15:13
RE: Open Source Tools und Daten - von Lancelot - 07.03.2023, 13:17
RE: Open Source Tools und Daten - von TomJoe - 09.03.2023, 12:31
RE: Open Source Tools und Daten - von Lancelot - 30.04.2023, 19:09
RE: Open Source Tools und Daten - von Lancelot - 09.01.2024, 14:57
RE: Open Source Tools und Daten - von Lancelot - 09.01.2024, 15:08

Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
Notiz Kostenlose Historische EOD Daten atze2000 69 70.069 04.03.2021, 15:55
Letzter Beitrag: Noni-Binder
Notiz EOD Daten Feeds atze2000 7 8.810 08.02.2019, 12:59
Letzter Beitrag: Noni-Binder
Notiz Free Future Daten atze2000 0 2.163 11.01.2019, 13:27
Letzter Beitrag: atze2000
Notiz Cot Daten atze2000 2 3.518 10.01.2019, 19:46
Letzter Beitrag: atze2000

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste