Compartir tecnología

Visita genial a la biblioteca de Python: biblioteca de terceros Pandas (011)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Tabla de contenido

1. Explicación detallada del uso.

25. Función pandas.HDFStore.get

25-1.

25-2.

25-3.

25-4.

25-5.

25-6.

25-6-1.

25-6-2.

25-6-3.

26. función pandas.HDFStore.select

26-1.

26-2.

26-3.

26-4. Valor de retorno

26-5.

26-6.

26-6-1.

26-6-2. Ejemplos de código.

26-6-3.

27. función pandas.HDFStore.info

27-1.

27-2.

27-3.

27-4. Valor de retorno

27-5.

27-6.

27-6-1.

27-6-2. Ejemplos de código.

27-6-3.

2. Lectura recomendada

1. Viaje de construcción de las bases de Python

2. Un viaje por las funciones de Python

3. Viaje al algoritmo Python

4. Viaje mágico de Python

5. Página de inicio personal del blog

1. Explicación detallada del uso.

25、pandas.HDFStore.obtenerfunción
25-1.
  1. # 25、pandas.HDFStore.get函数
  2. HDFStore.get(key)
  3. Retrieve pandas object stored in file.
  4. Parameters:
  5. key
  6. str
  7. Returns:
  8. object
  9. Same type as object stored in file.
25-2.

25-2-1, clave(debe)Una cadena que especifica la ubicación o el nombre en el archivo HDF5 de los datos que se recuperarán. Esta clave generalmente corresponde al nombre o la ruta que utilizó al guardar los datos en el archivo HDF5.

25-3.

Se utiliza para recuperar (u obtener) datos almacenados de archivos HDF5.

25-4.

En términos generales, esta función devolverá el objeto pandas asociado con la clave, como un DataFrame, una serie u otro posible contenedor de pandas.

Específicamente, el valor de retorno puede ser:

25-4-1, Marco de datos : Si los datos asociados con la clave almacenada en el archivo HDF5 son una tabla o una estructura de datos similar a una tabla, el método get devolverá un objeto DataFrame. DataFrame es la estructura de datos principal en pandas para almacenar y manipular datos estructurados. Almacena datos en forma tabular, que contiene filas y columnas.

Serie 25-4-2: En algunos casos, si los datos almacenados son unidimensionales, como datos de series temporales o datos de una sola columna, el método get puede devolver un objeto Serie que se utiliza en pandas para almacenar datos unidimensionales (es decir, con matriz de índices) estructura de datos.

25-4-3. Otros objetos pandas. : Aunque son menos comunes, los archivos HDF5 pueden, en teoría, almacenar otros tipos de objetos pandas, como Panels (nota: a partir de la versión 0.25.0 de pandas, Panel ha quedado obsoleto y eliminado de la biblioteca de pandas). Sin embargo, a medida que los pandas han evolucionado, esta situación se ha vuelto cada vez más rara.

25-4-4, Ninguno o valor predeterminado : Si la clave especificada no existe en el archivo HDF5 y el método get no proporciona un valor predeterminado como segundo parámetro, entonces puede generar un KeyError. Sin embargo, si se proporciona un valor predeterminado (aunque este no es un comportamiento estándar para los métodos get, ya que los métodos get generalmente no admiten directamente los parámetros de valor predeterminado en HDFStore), este puede ser el caso del DataFrame..conseguir ofuscación del método), entonces devolverá ese valor predeterminado. Sin embargo, en el contexto de HDFStore, es más común usar un bloque try-except para detectar KeyError y manejar el caso si es necesario.

25-5.

ninguno

25-6.
25-6-1.
25-6-2.
  1. # 25、pandas.HDFStore.get函数
  2. import pandas as pd
  3. # 创建一个示例的DataFrame
  4. data = pd.DataFrame({
  5. 'A': [1, 2, 3, 4],
  6. 'B': ['foo', 'bar', 'foo', 'bar'],
  7. 'C': [0.1, 0.2, 0.3, 0.4]
  8. })
  9. # 将数据保存到HDF5文件中
  10. filename = 'example.h5'
  11. key = 'data'
  12. data.to_hdf(filename, key=key, format='table', mode='w')
  13. # 从HDF5文件中读取数据
  14. with pd.HDFStore(filename, mode='r') as store:
  15. df_from_hdf = store.get(key)
  16. # 打印读取的数据
  17. print("Data read from HDF5:")
  18. print(df_from_hdf)
25-6-3.
  1. # 25、pandas.HDFStore.get函数
  2. # Data read from HDF5:
  3. # A B C
  4. # 0 1 foo 0.1
  5. # 1 2 bar 0.2
  6. # 2 3 foo 0.3
  7. # 3 4 bar 0.4
26、pandas.HDFStore.seleccionarfunción
26-1.
  1. # 26、pandas.HDFStore.select函数
  2. HDFStore.select(key, where=None, start=None, stop=None, columns=None, iterator=False, chunksize=None, auto_close=False)
  3. Retrieve pandas object stored in file, optionally based on where criteria.
  4. Warning
  5. 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.
  6. See: https://docs.python.org/3/library/pickle.html for more.
  7. Parameters:
  8. key
  9. str
  10. Object being retrieved from file.
  11. where
  12. list or None
  13. List of Term (or convertible) objects, optional.
  14. start
  15. int or None
  16. Row number to start selection.
  17. stop
  18. int, default None
  19. Row number to stop selection.
  20. columns
  21. list or None
  22. A list of columns that if not None, will limit the return columns.
  23. iterator
  24. bool or False
  25. Returns an iterator.
  26. chunksize
  27. int or None
  28. Number or rows to include in iteration, return an iterator.
  29. auto_close
  30. bool or False
  31. Should automatically close the store when finished.
  32. Returns:
  33. object
  34. Retrieved object from file.
26-2.

26-2-1, clave(debe)La clave (o ruta) en el archivo HDF5 que se va a recuperar; suele ser el nombre o la ruta especificada al guardar datos en el archivo HDF5.

26-2-2,donde(opcional, el valor predeterminado es Ninguno) Expresión condicional utilizada para filtrar datos. Si es una cadena, debe ser una cadena de consulta Pandas válida, similar a la que se usa cuando se usa el método .query() en el DataFrame; si es un objeto invocable (como una función), debe aceptar un DataFrame; como entrada y devuelve una secuencia booleana que indica qué filas deben seleccionarse.

26-2-3、inicio/parada(opcional, el valor predeterminado es Ninguno)El índice inicial/final de las filas que se recuperarán (basado en 0). Si se especifican inicio y detención, solo se recuperarán las filas entre estos dos índices (incluido el inicio, pero sin incluir la detención).

26-2-4, columnas(opcional, el valor predeterminado es Ninguno)Una lista de nombres de columnas o un nombre de columna único para recuperar. Si se especifica este parámetro, solo se recuperarán los datos de estas columnas.

26-2-5, iterador(opcional, el valor predeterminado es Falso)Si es Verdadero, devuelve un iterador que genera los datos fragmento a fragmento en lugar de cargar todo el conjunto de datos en la memoria a la vez, lo cual es útil para procesar conjuntos de datos grandes.

26-2-6, tamaño del trozo(opcional, el valor predeterminado es Ninguno)Cuando iterador = Verdadero, este parámetro especifica el número de filas en cada bloque, lo que le permite controlar el uso de la memoria y puede mejorar el rendimiento al procesar grandes conjuntos de datos.

26-2-7, cierre automático(opcional, el valor predeterminado es Falso) Si es Verdadero, el almacenamiento se cierra automáticamente cuando se agota el iterador o se produce una excepción, lo que ayuda a garantizar que el archivo se cierre correctamente incluso cuando se produce un error. Sin embargo, tenga en cuenta que si planea continuar usando objetos HDFStore después de que se agote el iterador, debe establecer este parámetro en False.

26-3.

Recupere objetos pandas (como DataFrame o Series) almacenados bajo una clave específica de un archivo HDF5 y permita al usuario filtrar o controlar los datos recuperados en función de una serie de parámetros.

26-4. Valor de retorno

   El valor de retorno depende del tipo de datos asociado con la clave almacenada en el archivo HDF5 y las condiciones de la consulta (si las hay). Normalmente, el valor de retorno es un objeto pandas, como por ejemplo:

26-4-1, Marco de datos: Si los datos recuperados están en forma tabular, se devolverá un objeto DataFrame.

26-4-2,Serie: Si los datos recuperados son unidimensionales (por ejemplo, datos de una sola columna), entonces se puede devolver un objeto Serie, aunque esto suele ocurrir cuando se especifica explícitamente una sola columna como parámetro de columnas.

26-4-3. Otros objetos pandas.: En teoría, también podrían ser otros contenedores pandas, pero en el contexto de archivos HDF5 los más comunes son DataFrame y Series.

26-5.

ninguno

26-6.
26-6-1.
26-6-2. Ejemplos de código.
  1. # 26、pandas.HDFStore.select函数
  2. import pandas as pd
  3. import numpy as np
  4. # 创建一个示例DataFrame
  5. np.random.seed(0) # 设置随机种子以确保结果可重复
  6. data = pd.DataFrame({
  7. 'A': np.random.randn(100),
  8. 'B': np.random.randn(100),
  9. 'C': np.random.randn(100),
  10. 'D': np.random.randint(0, 2, 100)
  11. })
  12. # 将DataFrame保存到HDF5文件中
  13. with pd.HDFStore('example.h5') as store:
  14. store.put('data', data, format='table')
  15. # 从HDF5文件中检索数据的示例
  16. with pd.HDFStore('example.h5') as store:
  17. # 选择所有数据
  18. print("nAll data:")
  19. all_data = store.select('data')
  20. print(all_data.head()) # 只打印前几行以节省空间
  21. # 选择特定的列
  22. print("nSpecific columns (A, B):")
  23. specific_columns = store.select('data', columns=['A', 'B'])
  24. print(specific_columns.head())
  25. # 选择部分数据行(注意:HDF5的索引可能不是从0开始的,但这里假设它是)
  26. print("nPartial data (rows 10 to 19):")
  27. partial_data = store.select('data', start=10, stop=20)
  28. print(partial_data)
  29. # 使用chunksize来逐块读取数据
  30. print("nData read in chunks:")
  31. chunks = store.select('data', chunksize=10)
  32. for i, chunk in enumerate(chunks):
  33. print(f"Chunk {i + 1}:")
  34. print(chunk.head()) # 只打印每个块的前几行
26-6-3.
  1. # 26、pandas.HDFStore.select函数
  2. # All data:
  3. # A B C D
  4. # 0 1.764052 1.883151 -0.369182 0
  5. # 1 0.400157 -1.347759 -0.239379 0
  6. # 2 0.978738 -1.270485 1.099660 1
  7. # 3 2.240893 0.969397 0.655264 1
  8. # 4 1.867558 -1.173123 0.640132 0
  9. #
  10. # Specific columns (A, B):
  11. # A B
  12. # 0 1.764052 1.883151
  13. # 1 0.400157 -1.347759
  14. # 2 0.978738 -1.270485
  15. # 3 2.240893 0.969397
  16. # 4 1.867558 -1.173123
  17. #
  18. # Partial data (rows 10 to 19):
  19. # A B C D
  20. # 10 0.144044 1.867559 0.910179 0
  21. # 11 1.454274 0.906045 0.317218 0
  22. # 12 0.761038 -0.861226 0.786328 1
  23. # 13 0.121675 1.910065 -0.466419 0
  24. # 14 0.443863 -0.268003 -0.944446 0
  25. # 15 0.333674 0.802456 -0.410050 0
  26. # 16 1.494079 0.947252 -0.017020 1
  27. # 17 -0.205158 -0.155010 0.379152 1
  28. # 18 0.313068 0.614079 2.259309 0
  29. # 19 -0.854096 0.922207 -0.042257 0
  30. #
  31. # Data read in chunks:
  32. # Chunk 1:
  33. # A B C D
  34. # 0 1.764052 1.883151 -0.369182 0
  35. # 1 0.400157 -1.347759 -0.239379 0
  36. # 2 0.978738 -1.270485 1.099660 1
  37. # 3 2.240893 0.969397 0.655264 1
  38. # 4 1.867558 -1.173123 0.640132 0
  39. # Chunk 2:
  40. # A B C D
  41. # 10 0.144044 1.867559 0.910179 0
  42. # 11 1.454274 0.906045 0.317218 0
  43. # 12 0.761038 -0.861226 0.786328 1
  44. # 13 0.121675 1.910065 -0.466419 0
  45. # 14 0.443863 -0.268003 -0.944446 0
  46. # Chunk 3:
  47. # A B C D
  48. # 20 -2.552990 0.376426 -0.955945 0
  49. # 21 0.653619 -1.099401 -0.345982 1
  50. # 22 0.864436 0.298238 -0.463596 0
  51. # 23 -0.742165 1.326386 0.481481 0
  52. # 24 2.269755 -0.694568 -1.540797 1
  53. # Chunk 4:
  54. # A B C D
  55. # 30 0.154947 -0.769916 -1.424061 1
  56. # 31 0.378163 0.539249 -0.493320 0
  57. # 32 -0.887786 -0.674333 -0.542861 0
  58. # 33 -1.980796 0.031831 0.416050 1
  59. # 34 -0.347912 -0.635846 -1.156182 1
  60. # Chunk 5:
  61. # A B C D
  62. # 40 -1.048553 -1.491258 -0.637437 0
  63. # 41 -1.420018 0.439392 -0.397272 1
  64. # 42 -1.706270 0.166673 -0.132881 0
  65. # 43 1.950775 0.635031 -0.297791 0
  66. # 44 -0.509652 2.383145 -0.309013 0
  67. # Chunk 6:
  68. # A B C D
  69. # 50 -0.895467 -0.068242 0.521065 1
  70. # 51 0.386902 1.713343 -0.575788 1
  71. # 52 -0.510805 -0.744755 0.141953 0
  72. # 53 -1.180632 -0.826439 -0.319328 0
  73. # 54 -0.028182 -0.098453 0.691539 1
  74. # Chunk 7:
  75. # A B C D
  76. # 60 -0.672460 -0.498032 -1.188859 1
  77. # 61 -0.359553 1.929532 -0.506816 1
  78. # 62 -0.813146 0.949421 -0.596314 0
  79. # 63 -1.726283 0.087551 -0.052567 0
  80. # 64 0.177426 -1.225436 -1.936280 0
  81. # Chunk 8:
  82. # A B C D
  83. # 70 0.729091 0.920859 0.399046 0
  84. # 71 0.128983 0.318728 -2.772593 1
  85. # 72 1.139401 0.856831 1.955912 0
  86. # 73 -1.234826 -0.651026 0.390093 1
  87. # 74 0.402342 -1.034243 -0.652409 1
  88. # Chunk 9:
  89. # A B C D
  90. # 80 -1.165150 -0.353994 -0.110541 0
  91. # 81 0.900826 -1.374951 1.020173 0
  92. # 82 0.465662 -0.643618 -0.692050 1
  93. # 83 -1.536244 -2.223403 1.536377 0
  94. # 84 1.488252 0.625231 0.286344 0
  95. # Chunk 10:
  96. # A B C D
  97. # 90 -0.403177 -1.292857 -0.628088 1
  98. # 91 1.222445 0.267051 -0.481027 1
  99. # 92 0.208275 -0.039283 2.303917 0
  100. # 93 0.976639 -1.168093 -1.060016 1
  101. # 94 0.356366 0.523277 -0.135950 0
27、pandas.HDFStore.infofunción
27-1.
  1. # 27、pandas.HDFStore.info函数
  2. HDFStore.info()
  3. Print detailed information on the store.
  4. Returns:
  5. str
27-2.

ninguno

27-3.

Proporciona información detallada sobre los conjuntos de datos (también llamados claves o nodos) almacenados en archivos HDF5.

27-4. Valor de retorno

No hay un valor de retorno directo (es decir, no se devuelven datos a la variable), pero la información se imprime en la consola (o salida estándar).

27-5.

ninguno

27-6.
27-6-1.
27-6-2. Ejemplos de código.
  1. # 27、pandas.HDFStore.info函数
  2. import pandas as pd
  3. import numpy as np
  4. # 创建一个包含随机数的数据帧
  5. data = pd.DataFrame({
  6. 'A': np.random.randn(100),
  7. 'B': np.random.randn(100),
  8. 'C': np.random.randn(100),
  9. 'D': np.random.randint(0, 2, 100)
  10. })
  11. # 将数据写入HDF5文件
  12. with pd.HDFStore('example.h5') as store:
  13. store.put('data', data, format='table')
  14. # 使用HDFStore.info()函数获取HDF5文件的信息
  15. with pd.HDFStore('example.h5') as store:
  16. # 打印存储的信息
  17. store.info()
  18. # 读取数据以确认
  19. all_data = store.select('data')
  20. print("nAll data (first 5 rows):")
  21. print(all_data.head())
27-6-3.
  1. # 27、pandas.HDFStore.info函数
  2. # All data (first 5 rows):
  3. # A B C D
  4. # 0 -1.186803 -0.983345 0.661022 1
  5. # 1 0.549244 -0.429500 -0.022329 1
  6. # 2 1.408989 0.779268 0.079574 1
  7. # 3 -1.178696 0.918125 0.174332 0
  8. # 4 -0.538677 -0.124535 -1.165208 1

2. Lectura recomendada

1、Viaje de construcción de las bases de Python
2、Tour de funciones de Python
3、Viaje del algoritmo Python
4、Viaje mágico de Python
5、perfil del blog