2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Inhaltsverzeichnis
1. Ausführliche Erläuterung der Verwendung
25. pandas.HDFStore.get-Funktion
26. pandas.HDFStore.select-Funktion
27. pandas.HDFStore.info-Funktion
1. Reise zum Aufbau der Python-Grundlage
3. Reise zum Python-Algorithmus
- # 25、pandas.HDFStore.get函数
- HDFStore.get(key)
- Retrieve pandas object stored in file.
-
- Parameters:
- key
- str
- Returns:
- object
- Same type as object stored in file.
25-2-1, Schlüssel(muss):Eine Zeichenfolge, die den Speicherort oder Namen der abzurufenden Daten in der HDF5-Datei angibt. Dieser Schlüssel entspricht normalerweise dem Namen oder Pfad, den Sie beim Speichern der Daten in der HDF5-Datei verwendet haben.
Wird zum Abrufen (oder Abrufen) gespeicherter Daten aus HDF5-Dateien verwendet.
Im Allgemeinen gibt diese Funktion das mit dem Schlüssel verknüpfte Pandas-Objekt zurück, z. B. einen DataFrame, eine Serie oder einen anderen möglichen Pandas-Container.
Im Einzelnen kann der Rückgabewert sein:
25-4-1, Datenrahmen : Wenn es sich bei den mit dem in der HDF5-Datei gespeicherten Schlüssel verknüpften Daten um eine Tabelle oder eine tabellenähnliche Datenstruktur handelt, gibt die get-Methode ein DataFrame-Objekt zurück. DataFrame ist die Hauptdatenstruktur, die in Pandas zum Speichern und Bearbeiten strukturierter Daten verwendet wird. Es speichert Daten in Tabellenform, die Zeilen und Spalten enthält.
25-4-2、Serie: In einigen Fällen, wenn die gespeicherten Daten eindimensional sind, z. B. Zeitreihendaten oder Daten einer einzelnen Spalte, kann die Get-Methode ein Series-Objekt zurückgeben. Series wird in Pandas zum Speichern eindimensionaler Daten verwendet (d. h. mit Index-Array) Datenstruktur.
25-4-3. Andere Pandas-Objekte : Obwohl weniger verbreitet, können HDF5-Dateien theoretisch andere Arten von Pandas-Objekten speichern, z. B. Panels (Hinweis: Ab Pandas-Version 0.25.0 ist Panel veraltet und wurde aus der Pandas-Bibliothek entfernt). Mit der Entwicklung der Pandas ist diese Situation jedoch immer seltener geworden.
25-4-4, Keine oder Standardwert : Wenn der angegebene Schlüssel nicht in der HDF5-Datei vorhanden ist und die get-Methode keinen Standardwert als zweiten Parameter bereitstellt, kann es zu einem KeyError kommen. Wenn jedoch ein Standardwert bereitgestellt wird (obwohl dies kein Standardverhalten für Get-Methoden ist, da Get-Methoden Standardwertargumente in HDFStore im Allgemeinen nicht direkt unterstützen), kann dies für den DataFrame der Fall sein.erhalten Verschleierung der Methode), dann wird dieser Standardwert zurückgegeben. Im Kontext von HDFStore ist es jedoch üblicher, einen Try-Exception-Block zu verwenden, um KeyError abzufangen und den Fall bei Bedarf zu behandeln.
keiner
无
- # 25、pandas.HDFStore.get函数
- import pandas as pd
- # 创建一个示例的DataFrame
- data = pd.DataFrame({
- 'A': [1, 2, 3, 4],
- 'B': ['foo', 'bar', 'foo', 'bar'],
- 'C': [0.1, 0.2, 0.3, 0.4]
- })
- # 将数据保存到HDF5文件中
- filename = 'example.h5'
- key = 'data'
- data.to_hdf(filename, key=key, format='table', mode='w')
- # 从HDF5文件中读取数据
- with pd.HDFStore(filename, mode='r') as store:
- df_from_hdf = store.get(key)
- # 打印读取的数据
- print("Data read from HDF5:")
- print(df_from_hdf)
- # 25、pandas.HDFStore.get函数
- # Data read from HDF5:
- # A B C
- # 0 1 foo 0.1
- # 1 2 bar 0.2
- # 2 3 foo 0.3
- # 3 4 bar 0.4
- # 26、pandas.HDFStore.select函数
- HDFStore.select(key, where=None, start=None, stop=None, columns=None, iterator=False, chunksize=None, auto_close=False)
- Retrieve pandas object stored in file, optionally based on where criteria.
-
- Warning
-
- Pandas uses PyTables for reading and writing HDF5 files, which allows serializing object-dtype data with pickle when using the “fixed” format. Loading pickled data received from untrusted sources can be unsafe.
-
- See: https://docs.python.org/3/library/pickle.html for more.
-
- Parameters:
- key
- str
- Object being retrieved from file.
-
- where
- list or None
- List of Term (or convertible) objects, optional.
-
- start
- int or None
- Row number to start selection.
-
- stop
- int, default None
- Row number to stop selection.
-
- columns
- list or None
- A list of columns that if not None, will limit the return columns.
-
- iterator
- bool or False
- Returns an iterator.
-
- chunksize
- int or None
- Number or rows to include in iteration, return an iterator.
-
- auto_close
- bool or False
- Should automatically close the store when finished.
-
- Returns:
- object
- Retrieved object from file.
26-2-1, Schlüssel(muss):Der Schlüssel (oder Pfad) in der abzurufenden HDF5-Datei. Dies ist normalerweise der Name oder Pfad, der beim Speichern von Daten in der HDF5-Datei angegeben wird.
26-2-2, wobei(optional, Standardwert ist None): Bedingter Ausdruck, der zum Filtern von Daten verwendet wird. Wenn es sich um eine Zeichenfolge handelt, sollte es sich um eine gültige Pandas-Abfragezeichenfolge handeln, ähnlich der, die bei Verwendung der .query()-Methode für den DataFrame verwendet wird. Wenn es sich um ein aufrufbares Objekt (z. B. eine Funktion) handelt, sollte es einen DataFrame akzeptieren als Eingabe und gibt eine boolesche Sequenz zurück, die angibt, welche Zeilen ausgewählt werden sollen.
26-2-3, Start/Stopp(optional, Standardwert ist None):Der Start-/Endindex der abzurufenden Zeilen (0-basiert). Wenn Start und Stopp angegeben sind, werden nur Zeilen zwischen diesen beiden Indizes abgerufen (einschließlich Start, aber nicht einschließlich Stopp).
26-2-4、Spalten(optional, Standardwert ist None):Eine Liste von abzurufenden Spaltennamen oder ein einzelner Spaltenname. Wenn dieser Parameter angegeben ist, werden nur Daten für diese Spalten abgerufen.
26-2-5, Iterator(optional, Standardwert ist False):Wenn True, wird ein Iterator zurückgegeben, der die Daten Stück für Stück generiert, anstatt den gesamten Datensatz auf einmal in den Speicher zu laden, was bei der Verarbeitung großer Datensätze hilfreich ist.
26-2-6, Blockgröße(optional, Standardwert ist None):Wenn iterator=True, gibt dieser Parameter die Anzahl der Zeilen in jedem Block an, wodurch Sie die Speichernutzung steuern und die Leistung bei der Verarbeitung großer Datensätze verbessern können.
26-2-7, automatisch schließen(optional, Standardwert ist False): Bei „True“ wird der Speicher automatisch geschlossen, wenn der Iterator erschöpft ist oder eine Ausnahme auftritt. Dadurch wird sichergestellt, dass die Datei auch dann korrekt geschlossen wird, wenn ein Fehler auftritt. Bitte beachten Sie jedoch, dass Sie diesen Parameter auf „False“ setzen sollten, wenn Sie HDFStore-Objekte weiterhin verwenden möchten, nachdem der Iterator erschöpft ist.
Rufen Sie Pandas-Objekte (z. B. DataFrame oder Series), die unter einem bestimmten Schlüssel gespeichert sind, aus einer HDF5-Datei ab und ermöglichen Sie dem Benutzer, die abgerufenen Daten basierend auf einer Reihe von Parametern zu filtern oder zu steuern.
Der Rückgabewert hängt vom Datentyp ab, der dem in der HDF5-Datei gespeicherten Schlüssel zugeordnet ist, und von den Abfragebedingungen (sofern vorhanden). Normalerweise ist der Rückgabewert ein Pandas-Objekt, wie zum Beispiel:
26-4-1, Datenrahmen: Wenn die abgerufenen Daten in Tabellenform vorliegen, wird ein DataFrame-Objekt zurückgegeben.
26-4-2、Serie: Wenn die abgerufenen Daten eindimensional sind (z. B. Daten für eine einzelne Spalte), kann ein Series-Objekt zurückgegeben werden, obwohl dies normalerweise der Fall ist, wenn eine einzelne Spalte explizit als Spaltenparameter angegeben wird.
26-4-3. Andere Pandas-Objekte: Theoretisch könnten es auch andere Pandas-Container sein, aber im Kontext von HDF5-Dateien sind DataFrame und Series die häufigsten.
keiner
无
- # 26、pandas.HDFStore.select函数
- import pandas as pd
- import numpy as np
- # 创建一个示例DataFrame
- np.random.seed(0) # 设置随机种子以确保结果可重复
- data = pd.DataFrame({
- 'A': np.random.randn(100),
- 'B': np.random.randn(100),
- 'C': np.random.randn(100),
- 'D': np.random.randint(0, 2, 100)
- })
- # 将DataFrame保存到HDF5文件中
- with pd.HDFStore('example.h5') as store:
- store.put('data', data, format='table')
- # 从HDF5文件中检索数据的示例
- with pd.HDFStore('example.h5') as store:
- # 选择所有数据
- print("nAll data:")
- all_data = store.select('data')
- print(all_data.head()) # 只打印前几行以节省空间
- # 选择特定的列
- print("nSpecific columns (A, B):")
- specific_columns = store.select('data', columns=['A', 'B'])
- print(specific_columns.head())
- # 选择部分数据行(注意:HDF5的索引可能不是从0开始的,但这里假设它是)
- print("nPartial data (rows 10 to 19):")
- partial_data = store.select('data', start=10, stop=20)
- print(partial_data)
- # 使用chunksize来逐块读取数据
- print("nData read in chunks:")
- chunks = store.select('data', chunksize=10)
- for i, chunk in enumerate(chunks):
- print(f"Chunk {i + 1}:")
- print(chunk.head()) # 只打印每个块的前几行
- # 26、pandas.HDFStore.select函数
- # All data:
- # A B C D
- # 0 1.764052 1.883151 -0.369182 0
- # 1 0.400157 -1.347759 -0.239379 0
- # 2 0.978738 -1.270485 1.099660 1
- # 3 2.240893 0.969397 0.655264 1
- # 4 1.867558 -1.173123 0.640132 0
- #
- # Specific columns (A, B):
- # A B
- # 0 1.764052 1.883151
- # 1 0.400157 -1.347759
- # 2 0.978738 -1.270485
- # 3 2.240893 0.969397
- # 4 1.867558 -1.173123
- #
- # Partial data (rows 10 to 19):
- # A B C D
- # 10 0.144044 1.867559 0.910179 0
- # 11 1.454274 0.906045 0.317218 0
- # 12 0.761038 -0.861226 0.786328 1
- # 13 0.121675 1.910065 -0.466419 0
- # 14 0.443863 -0.268003 -0.944446 0
- # 15 0.333674 0.802456 -0.410050 0
- # 16 1.494079 0.947252 -0.017020 1
- # 17 -0.205158 -0.155010 0.379152 1
- # 18 0.313068 0.614079 2.259309 0
- # 19 -0.854096 0.922207 -0.042257 0
- #
- # Data read in chunks:
- # Chunk 1:
- # A B C D
- # 0 1.764052 1.883151 -0.369182 0
- # 1 0.400157 -1.347759 -0.239379 0
- # 2 0.978738 -1.270485 1.099660 1
- # 3 2.240893 0.969397 0.655264 1
- # 4 1.867558 -1.173123 0.640132 0
- # Chunk 2:
- # A B C D
- # 10 0.144044 1.867559 0.910179 0
- # 11 1.454274 0.906045 0.317218 0
- # 12 0.761038 -0.861226 0.786328 1
- # 13 0.121675 1.910065 -0.466419 0
- # 14 0.443863 -0.268003 -0.944446 0
- # Chunk 3:
- # A B C D
- # 20 -2.552990 0.376426 -0.955945 0
- # 21 0.653619 -1.099401 -0.345982 1
- # 22 0.864436 0.298238 -0.463596 0
- # 23 -0.742165 1.326386 0.481481 0
- # 24 2.269755 -0.694568 -1.540797 1
- # Chunk 4:
- # A B C D
- # 30 0.154947 -0.769916 -1.424061 1
- # 31 0.378163 0.539249 -0.493320 0
- # 32 -0.887786 -0.674333 -0.542861 0
- # 33 -1.980796 0.031831 0.416050 1
- # 34 -0.347912 -0.635846 -1.156182 1
- # Chunk 5:
- # A B C D
- # 40 -1.048553 -1.491258 -0.637437 0
- # 41 -1.420018 0.439392 -0.397272 1
- # 42 -1.706270 0.166673 -0.132881 0
- # 43 1.950775 0.635031 -0.297791 0
- # 44 -0.509652 2.383145 -0.309013 0
- # Chunk 6:
- # A B C D
- # 50 -0.895467 -0.068242 0.521065 1
- # 51 0.386902 1.713343 -0.575788 1
- # 52 -0.510805 -0.744755 0.141953 0
- # 53 -1.180632 -0.826439 -0.319328 0
- # 54 -0.028182 -0.098453 0.691539 1
- # Chunk 7:
- # A B C D
- # 60 -0.672460 -0.498032 -1.188859 1
- # 61 -0.359553 1.929532 -0.506816 1
- # 62 -0.813146 0.949421 -0.596314 0
- # 63 -1.726283 0.087551 -0.052567 0
- # 64 0.177426 -1.225436 -1.936280 0
- # Chunk 8:
- # A B C D
- # 70 0.729091 0.920859 0.399046 0
- # 71 0.128983 0.318728 -2.772593 1
- # 72 1.139401 0.856831 1.955912 0
- # 73 -1.234826 -0.651026 0.390093 1
- # 74 0.402342 -1.034243 -0.652409 1
- # Chunk 9:
- # A B C D
- # 80 -1.165150 -0.353994 -0.110541 0
- # 81 0.900826 -1.374951 1.020173 0
- # 82 0.465662 -0.643618 -0.692050 1
- # 83 -1.536244 -2.223403 1.536377 0
- # 84 1.488252 0.625231 0.286344 0
- # Chunk 10:
- # A B C D
- # 90 -0.403177 -1.292857 -0.628088 1
- # 91 1.222445 0.267051 -0.481027 1
- # 92 0.208275 -0.039283 2.303917 0
- # 93 0.976639 -1.168093 -1.060016 1
- # 94 0.356366 0.523277 -0.135950 0
- # 27、pandas.HDFStore.info函数
- HDFStore.info()
- Print detailed information on the store.
-
- Returns:
- str
keiner
Bietet detaillierte Informationen zu den Datensätzen (auch Schlüssel oder Knoten genannt), die in HDF5-Dateien gespeichert sind.
Es gibt keinen direkten Rückgabewert (d. h. es werden keine Daten an die Variable zurückgegeben), aber die Informationen werden auf der Konsole (oder der Standardausgabe) ausgegeben.
keiner
无
- # 27、pandas.HDFStore.info函数
- import pandas as pd
- import numpy as np
- # 创建一个包含随机数的数据帧
- data = pd.DataFrame({
- 'A': np.random.randn(100),
- 'B': np.random.randn(100),
- 'C': np.random.randn(100),
- 'D': np.random.randint(0, 2, 100)
- })
- # 将数据写入HDF5文件
- with pd.HDFStore('example.h5') as store:
- store.put('data', data, format='table')
- # 使用HDFStore.info()函数获取HDF5文件的信息
- with pd.HDFStore('example.h5') as store:
- # 打印存储的信息
- store.info()
- # 读取数据以确认
- all_data = store.select('data')
- print("nAll data (first 5 rows):")
- print(all_data.head())
- # 27、pandas.HDFStore.info函数
- # All data (first 5 rows):
- # A B C D
- # 0 -1.186803 -0.983345 0.661022 1
- # 1 0.549244 -0.429500 -0.022329 1
- # 2 1.408989 0.779268 0.079574 1
- # 3 -1.178696 0.918125 0.174332 0
- # 4 -0.538677 -0.124535 -1.165208 1