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

Python –Pandasデータフレームのマルチレベル列インデックスからレベルを削除します


マルチレベルの列インデックスからレベルを削除するには、columns.droplevel()を使用します。 Multiindex.from_tuples()を使用して、列ごとにインデックスを作成しました。

最初に、列ごとにインデックスを作成します-

items = pd.MultiIndex.from_tuples([("Col 1", "Col 1", "Col 1"),("Col 2", "Col 2", "Col 2"),("Col 3", "Col 3", "Col 3")])

次に、マルチインデックス配列を作成し、マルチインデックスデータフレームを形成します

arr = [np.array(['car', 'car', 'car','bike','bike', 'bike', 'truck', 'truck', 'truck']),

   np.array(['valueA', 'valueB', 'valueC','valueA', 'valueB', 'valueC','valueA', 'valueB', 'valueC'])]

# forming multiindex dataframe
dataFrame = pd.DataFrame(np.random.randn(9, 3), index=arr,columns=items)

インデックスにラベルを付ける-

dataFrame.index.names = ['level 0', 'level 1']

インデックス0でレベルを落とす-

dataFrame.columns = dataFrame.columns.droplevel(0)

以下はコードです

import numpy as np
import pandas as pd

items = pd.MultiIndex.from_tuples([("Col 1", "Col 1", "Col 1"),("Col 2", "Col 2", "Col 2"),("Col 3", "Col 3", "Col 3")])

# multiindex array
arr = [np.array(['car', 'car', 'car','bike','bike', 'bike', 'truck', 'truck', 'truck']),

np.array(['valueA', 'valueB', 'valueC','valueA', 'valueB', 'valueC','valueA', 'valueB', 'valueC'])]

# forming multiindex dataframe
dataFrame = pd.DataFrame(np.random.randn(9, 3), index=arr,columns=items)

# labelling index
dataFrame.index.names = ['level 0', 'level 1']
print"DataFrame...\n",dataFrame

print"\nDropping a level...\n";
dataFrame.columns = dataFrame.columns.droplevel(0)

print"Updated DataFrame..\n",dataFrame

出力

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

DataFrame...
                     Col 1      Col 2      Col 3
                     Col 1      Col 2      Col 3
                     Col 1      Col 2      Col 3
level 0  level 1
car      valueA   1.691127   0.315145  -0.695925
         valueB  -2.077182  -2.027643  -0.523965
         valueC   1.021402  -0.384421   0.640215
bike     valueA  -2.271217   0.197185   0.304847
         valueB   0.119615  -0.520491  -0.746547
         valueC   1.856888  -0.491540  -1.754604
truck    valueA   0.829854  -0.204102  -1.130511
         valueB   0.310692   0.119087  -0.244919
         valueC  -0.245934  -2.141639  -1.298278

Dropping a level...

Updated DataFrame..
                      Col 1      Col 2       Col 3
                      Col 1      Col 2       Col 3
level 0  level 1
car      valueA 1.691127   0.315145   -0.695925
         valueB   -2.077182  -2.027643   -0.523965
         valueC    1.021402  -0.384421    0.640215
bike     valueA   -2.271217   0.197185    0.304847
         valueB    0.119615  -0.520491   -0.746547
         valueC    1.856888  -0.491540   -1.754604
truck    valueA    0.829854  -0.204102   -1.130511
         valueB    0.310692   0.119087   -0.244919
         valueC   -0.245934  -2.141639   -1.298278

  1. PythonPandas-データフレームからマルチインデックスを作成

    DataFrameからマルチインデックスを作成するには、MultiIndexを使用します。 from_frame()メソッド。まず、リストの辞書を作成しましょう- d = {'Car': ['BMW', 'Lexus', 'Audi', 'Mercedes', 'Jaguar', 'Bentley'],'Date_of_purchase': ['2020-10-10', '2020-10-12', '2020-10-17'

  2. Python-PandasDataFrameからnull行を削除する方法

    Pandas DataFrameのnull行を削除するには、dropna()メソッドを使用します。以下が、いくつかのNaN、つまりnull値を含むCSVファイルであるとしましょう- read_csv()を使用してCSVファイルを読み取ってみましょう。 CSVはデスクトップにあります- dataFrame = pd.read_csv("C:\\Users\\amit_\\Desktop\\CarRecords.csv") dropna()-を使用してnull値を削除します dataFrame = dataFrame.dropna() 例 以下は完全なコードです-