Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python Pandas-MultiIndexのレベルを列として使用してデータフレームを作成し、インデックスレベル名を置き換えます


MultiIndexのレベルを列として持つDataFrameを作成するには、 MultiIndex.to_frame()を使用します。 方法。 名前を使用してインデックスレベルの名前に置き換えます パラメータ。

まず、必要なライブラリをインポートします-

import pandas as pd

MultiIndexは、パンダオブジェクトのマルチレベルまたは階層的なインデックスオブジェクトです。配列を作成する-

arrays = [[1, 2, 3, 4], ['John', 'Tim', 'Jacob', 'Chris']]

「names」パラメーターは、各インデックスレベルの名前を設定します。 from_arrays()は、MultiIndex-

を作成するために使用されます
multiIndex = pd.MultiIndex.from_arrays(arrays)

to_frame()を使用して、MultiIndexのレベルを列として持つDataFrameを作成します。 「name」パラメータを使用し、名前を渡してインデックスレベル名を置き換えます-

dataFrame = multiIndex.to_frame(name=['One', 'Two'])

以下はコードです-

import pandas as pd

# MultiIndex is a multi-level, or hierarchical, index object for pandas objects
# Create arrays
arrays = [[1, 2, 3, 4], ['John', 'Tim', 'Jacob', 'Chris']]

# The "names" parameter sets the names for each of the index levels
# The from_arrays() is used to create a MultiIndex
multiIndex = pd.MultiIndex.from_arrays(arrays)

# display the MultiIndex
print("The Multi-index...\n",multiIndex)

# get the levels in MultiIndex
print("\nThe levels in Multi-index...\n",multiIndex.levels)

# Create a DataFrame with the levels of the MultiIndex as columns using to_frame()
# Use the "name" parameter and pass the names to substitute index level names
dataFrame = multiIndex.to_frame(name=['One', 'Two'])

# Display the DataFrame
print("\nThe DataFrame...\n",dataFrame)

出力

これにより、次の出力が生成されます-

The Multi-index...
MultiIndex([(1, 'John'),
(2, 'Tim'),
(3, 'Jacob'),
(4, 'Chris')],
)

The levels in Multi-index...
[[1, 2, 3, 4], ['Chris', 'Jacob', 'John', 'Tim']]

The DataFrame...
        One   Two
1  John  1   John
2  Tim   2    Tim
3  Jacob 3  Jacob
4  Chris 4  Chris

  1. PythonPandas-DataFrameの列をクエリします

    Pandas DataFrameの列をクエリするには、query()を使用します。レコードをフィルタリングするためにクエリを実行しています。まず、PandasDataFrameを作成しましょう dataFrame = pd.DataFrame({"Product": ["SmartTV", "PenDrive", "Speaker", "Earphone"],"Opening_Stock": [300, 700, 1200, 1500],"Closing_Stock

  2. Pythonでプログラムを作成して、特定のDataFrameのインデックスと列を転置します

    入力 − DataFrameがあり、インデックスと列の転置の結果は、であると想定します。 Transposed DataFrame is   0 1 0 1 4 1 2 5 2 3 6 ソリューション1 DataFrameを定義する ネストされたリスト内包表記を設定して、2次元リストデータの各要素を反復し、結果に保存します。 result = [[data[i][j] for i in range(len(data))] for j in range(len(data[0])) 結果をDataFrameに変換します df2 = pd.DataFrame(