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)

0インデックスのレベルを削除しました。削除後、レベル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 = ['one', 'two']
print"DataFrame...\n",dataFrame

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

print"\nDropping another 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
one      two
car      valueA   0.425077   0.020606   1.148156
         valueB  -1.720355   0.502863   1.184753
         valueC   0.373106   1.300935  -0.128404
bike     valueA  -0.648708   0.944725   0.593327
         valueB  -0.613921  -0.238730  -0.218448
         valueC   0.313042  -0.628065   0.910935
truck    valueA   0.286377   0.478067  -1.000645
         valueB   1.151793  -0.171433  -0.612346
         valueC  -1.358061   0.735075   0.092700

Dropping a level...

Updated DataFrame..
                     Col 1      Col 2      Col 3
                     Col 1      Col 2      Col 3
one      two
car      valueA   0.425077   0.020606   1.148156
         valueB  -1.720355   0.502863   1.184753
         valueC   0.373106   1.300935  -0.128404
bike     valueA  -0.648708   0.944725   0.593327
         valueB  -0.613921  -0.238730  -0.218448
         valueC   0.313042  -0.628065   0.910935
truck    valueA   0.286377   0.478067  -1.000645
         valueB   1.151793  -0.171433  -0.612346
         valueC  -1.358061   0.735075   0.092700

Dropping another level...

Updated DataFrame..
                     Col 1     Col 2     Col 3
one      two
car      valueA   0.425077  0.020606  1.148156
         valueB  -1.720355  0.502863  1.184753
         valueC   0.373106  1.300935 -0.128404
bike     valueA  -0.648708  0.944725  0.593327
         valueB  -0.613921 -0.238730 -0.218448
         valueC   0.313042 -0.628065  0.910935
truck    valueA   0.286377  0.478067 -1.000645
         valueB   1.151793 -0.171433 -0.612346
         valueC  -1.358061  0.735075  0.092700

  1. Python-Pandasデータフレームから複数の列を選択します

    以下は、MicrosoftExcelで開いたCSVファイルの内容であるとしましょう- 最初に、CSVファイルからPandasDataFrameにデータをロードします- dataFrame = pd.read_csv("C:\\Users\\amit_\\Desktop\\SalesData.csv") 複数の列レコードを選択するには、角かっこを使用します。括弧内の列に言及し、データセット全体から複数の列をフェッチします- dataFrame[['Reg_Price','Units']] 例 以下はコードです- import pa

  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() 例 以下は完全なコードです-