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