高度なパンダ:特定の行インデックスからマルチインデックスパンダデータフレームを作成します

user8864088

私はこのようなデータセットを持っています:

    m   n   o  
0   2   22  42  
1   3   23  43  
2   4   24  44  
3   5   25  45  
4   6   26  46  
5   7   27  47  
6   8   28  48  
7   9   29  49  
8   10  30  50  
9   11  31  51  

これをマルチインデックスデータフレームに変換するにはどうすればよいですか。

Index   m    n  o  
  A  
     0  2   22  42  
     1  3   23  43  
     2  4   24  44  
  B  
    4   6   26  46  
  C  
    6   8   28  48  
    7   9   29  49  
    8   10  30  50 

**私の試み**

import numpy as np 
import pandas as pd

df = pd.DataFrame({'m': np.arange(2,12),
                   'n': np.arange(22,32),
                  'o': np.arange(42,52)})

df

** groupbyメソッド**

# Required index and their names
idx = [3,5,9]  # A is 0,1,2 B is 4 and C is 6,7,8
idx_orig = idx.copy()
idx_names = ['A','B','C']

# Attempt
idx_diff = np.diff(idx)
idx_diff = np.hstack((idx[0]+1,idx_diff)) # Add the first index value
idx_diff = idx_diff - 1 # Decrease index number
idx_names = np.repeat(idx_names,idx_diff)

# Drop rows with given indices
df = df.drop(df.index[idx_orig])

# Assign new col
df['Names'] = idx_names
#df.groupby('Names').count()
df

出力

    m   n   o   Names
0   2   22  42  A
1   3   23  43  A
2   4   24  44  A
4   6   26  46  B
6   8   28  48  C
7   9   29  49  C
8   10  30  50  C

ここでは、すべての行を含む多重指数データフレームを取得したかったのですが、groupbyはカウントのみを提供します。

ジェズリール

使用する:

idx = [3,5,9] 

idx_names = ['A','B','C']
d = dict(enumerate(idx_names))

#get boolean mask for create cumulative sum and filter out idx rows
mask = df.index.isin(idx)
df['g'] = mask.cumsum()
#map by dictioanry
df['g'] = df['g'].map(d)
#create MultiIndex and change order of levels
df = df[~mask].set_index('g', append=True).swaplevel(0,1)
print (df)
      m   n   o
g              
A 0   2  22  42
  1   3  23  43
  2   4  24  44
B 4   6  26  46
C 6   8  28  48
  7   9  29  49
  8  10  30  50

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

マルチインデックスcsvファイルからマルチインデックスパンダデータフレームを作成します

分類Dev

データフレームパンダからマルチインデックスを作成する

分類Dev

パンダマルチインデックスデータフレームは行を削除します

分類Dev

パンダのデータフレーム(マルチインデックス)に条件を入れますか?

分類Dev

区切られた文字列列からマルチレベルインデックスパンダデータフレームを作成します

分類Dev

マルチインデックスパンダデータフレームから個々の行を選択します

分類Dev

パンダのマルチインデックスデータフレームによる高度な平均化

分類Dev

マルチインデックスパンダデータフレームの最初の10行を表示する

分類Dev

マルチインデックスパンダデータフレームの行を合計する

分類Dev

パンダ:データフレームをマルチインデックスデータフレームと連結します。どうしましたか?

分類Dev

マルチインデックスデータフレームから特定の行を削除します

分類Dev

パンダのデータフレームをピボットして、マルチインデックスの列を作成します

分類Dev

パンダ/ダスク:マルチインデックスまたは2番目のデータフレームの他の2つの列からデータフレームをフィルタリングしますか?

分類Dev

パンダ:マルチインデックスデータフレームのNaNを削除して、多くの行を1つの行にまとめます

分類Dev

パンダ:グループ内の要素の相対インデックスからマルチインデックスデータフレームに列を作成します

分類Dev

マルチインデックスパンダシリーズから1列のデータフレームを作成する

分類Dev

マルチインデックスパンダデータフレームの列名のリストを作成します

分類Dev

パンダ:マルチインデックスデータフレームの行を折りたたむ

分類Dev

パンダはマルチレベルインデックスデータフレームの行を選択します

分類Dev

パンダの別のデータフレームの列と等しいインデックス値を持つマルチレベルインデックスデータフレームの行を選択します

分類Dev

パンダの既存のデータフレームのマルチインデックスを設定する

分類Dev

パンダ:マルチインデックスデータフレームにマスクを適用する

分類Dev

パンダでは、2つのデータフレームを複雑なマルチインデックスでマージします

分類Dev

パンダでマルチインデックスデータフレームを溶かす

分類Dev

インデックスを使用してパンダのマルチインデックスデータフレームを反復処理する方法

分類Dev

特定の番号/テキストがマルチインデックスパンダデータフレームのインデックスから欠落しているかどうかを確認するにはどうすればよいですか?

分類Dev

パンダでマルチインデックスからシングルインデックスデータフレームに戻す

分類Dev

このパンダのマルチインデックスデータフレームからこの種のデータを選択する方法

分類Dev

マルチインデックスデータフレームをスライスするパンダ

Related 関連記事

  1. 1

    マルチインデックスcsvファイルからマルチインデックスパンダデータフレームを作成します

  2. 2

    データフレームパンダからマルチインデックスを作成する

  3. 3

    パンダマルチインデックスデータフレームは行を削除します

  4. 4

    パンダのデータフレーム(マルチインデックス)に条件を入れますか?

  5. 5

    区切られた文字列列からマルチレベルインデックスパンダデータフレームを作成します

  6. 6

    マルチインデックスパンダデータフレームから個々の行を選択します

  7. 7

    パンダのマルチインデックスデータフレームによる高度な平均化

  8. 8

    マルチインデックスパンダデータフレームの最初の10行を表示する

  9. 9

    マルチインデックスパンダデータフレームの行を合計する

  10. 10

    パンダ:データフレームをマルチインデックスデータフレームと連結します。どうしましたか?

  11. 11

    マルチインデックスデータフレームから特定の行を削除します

  12. 12

    パンダのデータフレームをピボットして、マルチインデックスの列を作成します

  13. 13

    パンダ/ダスク:マルチインデックスまたは2番目のデータフレームの他の2つの列からデータフレームをフィルタリングしますか?

  14. 14

    パンダ:マルチインデックスデータフレームのNaNを削除して、多くの行を1つの行にまとめます

  15. 15

    パンダ:グループ内の要素の相対インデックスからマルチインデックスデータフレームに列を作成します

  16. 16

    マルチインデックスパンダシリーズから1列のデータフレームを作成する

  17. 17

    マルチインデックスパンダデータフレームの列名のリストを作成します

  18. 18

    パンダ:マルチインデックスデータフレームの行を折りたたむ

  19. 19

    パンダはマルチレベルインデックスデータフレームの行を選択します

  20. 20

    パンダの別のデータフレームの列と等しいインデックス値を持つマルチレベルインデックスデータフレームの行を選択します

  21. 21

    パンダの既存のデータフレームのマルチインデックスを設定する

  22. 22

    パンダ:マルチインデックスデータフレームにマスクを適用する

  23. 23

    パンダでは、2つのデータフレームを複雑なマルチインデックスでマージします

  24. 24

    パンダでマルチインデックスデータフレームを溶かす

  25. 25

    インデックスを使用してパンダのマルチインデックスデータフレームを反復処理する方法

  26. 26

    特定の番号/テキストがマルチインデックスパンダデータフレームのインデックスから欠落しているかどうかを確認するにはどうすればよいですか?

  27. 27

    パンダでマルチインデックスからシングルインデックスデータフレームに戻す

  28. 28

    このパンダのマルチインデックスデータフレームからこの種のデータを選択する方法

  29. 29

    マルチインデックスデータフレームをスライスするパンダ

ホットタグ

アーカイブ