技術共有

Python クール ライブラリ ツアー - サードパーティ ライブラリ Pandas (011)

2024-07-12

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

目次

1. 詳しい使い方の説明

25. 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. pandas.HDFStore.select関数

26-1. 文法

26-2.パラメータ

26-3. 機能

26-4. 戻り値

26-5. 説明

26-6. 使用方法

26-6-1. データの準備

26-6-2. コード例

26-6-3. 結果出力

27. pandas.HDFStore.info関数

27-1. 文法

27-2. パラメータ

27-3. 機能

27-4. 戻り値

27-5. 説明

27-6. 使用方法

27-6-1. データの準備

27-6-2. コード例

27-6-3. 結果出力

2. 推奨読書

1. Python の基礎構築の旅

2. Python 関数の旅

3. Python アルゴリズムの旅

4. Python の魔法の旅

5. ブログ個人ホームページ

1. 詳しい使い方の説明

25、pandas.HDFStore.get関数
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、キー(しなければならない)取得するデータの HDF5 ファイル内の場所または名前を指定する文字列。このキーは通常、データを HDF5 ファイルに保存するときに使用した名前またはパスに対応します。

25-3. 機能

HDF5 ファイルから保存されたデータを取得 (または取得) するために使用されます。

25-4. 戻り値

一般に、この関数は、DataFrame、Series、またはその他の可能な pandas コンテナーなど、キーに関連付けられた pandas オブジェクトを返します。

具体的には、戻り値は次のようになります。

25-4-1、データフレーム注: HDF5 ファイルに格納されているキーに関連付けられたデータがテーブルまたはテーブルに似たデータ構造である場合、get メソッドは DataFrame オブジェクトを返します。 DataFrame は、構造化データを保存および操作するための pandas の主要なデータ構造で、行と列を含む表形式でデータを保存します。

25-4-2、シリーズ: 場合によっては、保存されたデータが 1 次元 (時系列データや単一列のデータなど) の場合、get メソッドは Series オブジェクトを返すことがあります。Series は、pandas で 1 次元データを保存するために使用されます。インデックス配列付き) データ構造。

25-4-3. その他のパンダオブジェクト : それほど一般的ではありませんが、HDF5 ファイルは理論的には、Panel などの他のタイプの pandas オブジェクトを格納できます (注: pandas バージョン 0.25.0 以降、Panel は非推奨となり、pandas ライブラリから削除されました)。しかし、パンダが進化するにつれて、この状況はますますまれになってきました。

25-4-4、なしまたはデフォルト値注: 指定されたキーが HDF5 ファイルに存在せず、get メソッドが 2 番目のパラメーターとしてデフォルト値を提供しない場合、KeyError が発生する可能性があります。ただし、デフォルト値が提供されている場合 (ただし、これは get メソッドの標準的な動作ではありません。通常、get メソッドは HDFStore のデフォルト値パラメータを直接サポートしていないため)、これは DataFrame の場合に当てはまります。。得るメソッドの難読化)、そのデフォルト値を返します。ただし、HDFStore のコンテキストでは、try-excel ブロッ​​クを使用して KeyError をキャッチし、必要に応じてケースを処理することがより一般的です。

25-5. 説明

なし

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.select関数
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、キー(しなければならない)取得する HDF5 ファイル内のキー (またはパス)。これは通常、データを HDF5 ファイルに保存するときに指定された名前またはパスです。

26-2-2、どこで(オプション、デフォルト値はなし)データをフィルタリングするために使用される条件式。文字列の場合は、DataFrame で .query() メソッドを使用するときに使用されるものと同様の、有効な Pandas クエリ文字列である必要があります。呼び出し可能なオブジェクト (関数など) の場合は、DataFrame を受け入れる必要があります。を入力として入力し、どの行を選択する必要があるかを示すブール シーケンスを返します。

26-2-3、スタート/ストップ(オプション、デフォルト値はなし)取得する行の開始/終了インデックス (0 ベース) start と stop を指定すると、これら 2 つのインデックスの間にある行のみが取得されます (start は含まれますが stop は含まれません)。

26-2-4、列(オプション、デフォルト値はなし)取得する列名のリストまたは単一の列名。このパラメーターを指定すると、これらの列のデータのみが取得されます。

26-2-5、反復子(オプション、デフォルト値は False)True の場合、データセット全体を一度にメモリにロードするのではなく、データ チャンクごとにデータを生成するイテレータを返します。これは、大規模なデータセットを処理する場合に便利です。

26-2-6、チャンクサイズ(オプション、デフォルト値はなし)iterator=True の場合、このパラメーターは各ブロックの行数を指定します。これにより、メモリー使用量を制御でき、大規模なデータセットを処理する際のパフォーマンスを向上させることができます。

26-2-7、自動クローズ(オプション、デフォルト値は False) True の場合、イテレータが使い果たされるか例外が発生すると、ストレージは自動的に閉じられます。これにより、エラーが発生した場合でもファイルが正しく閉じられるようになります。ただし、イテレータが使い果たされた後も HDFStore オブジェクトを使用し続ける予定の場合は、このパラメータを False に設定する必要があることに注意してください。

26-3. 機能

HDF5 ファイルから特定のキーの下に保存されているパンダ オブジェクト (DataFrame や Series など) を取得し、ユーザーが一連のパラメータに基づいて取得したデータをフィルタリングまたは制御できるようにします。

26-4. 戻り値

  戻り値は、HDF5 ファイルに格納されているキーに関連付けられたデータ型とクエリ条件 (存在する場合) によって異なります。通常、戻り値は次のような pandas オブジェクトです。

26-4-1、データフレーム: 取得したデータが表形式の場合、DataFrame オブジェクトが返されます。

26-4-2、シリーズ注: 取得されたデータが 1 次元の場合 (たとえば、単一列のデータ)、Series オブジェクトが返されることがありますが、これは通常、単一列が columns パラメーターとして明示的に指定されている場合に発生します。

26-4-3. その他のパンダオブジェクト: 理論的には、他の pandas コンテナーも可能ですが、HDF5 ファイルのコンテキストでは、最も一般的なものは DataFrame と Series です。

26-5. 説明

なし

26-6. 使用方法
26-6-1. データの準備
26-6-2. コード例
  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.info関数
27-1. 文法
  1. # 27、pandas.HDFStore.info函数
  2. HDFStore.info()
  3. Print detailed information on the store.
  4. Returns:
  5. str
27-2. パラメータ

なし

27-3. 機能

HDF5 ファイルに格納されているデータセット (キーまたはノードとも呼ばれます) に関する詳細情報を提供します。

27-4. 戻り値

直接の戻り値はありません (つまり、変数にデータは返されません) が、情報はコンソール (または標準出力) に出力されます。

27-5. 説明

なし

27-6. 使用方法
27-6-1. データの準備
27-6-2. コード例
  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. 推奨読書

1、Python の基礎構築の旅
2、Python 関数ツアー
3、Python アルゴリズムの旅
4、Python の魔法の旅
5、ブログプロフィール