csvからデータをピボットし、データフレームに保存します

ayushgupta

私には次のような要件があります:

私は次のデータを含むcsvファイルを持っています(これは単なる例であり、データははるかに大きいです):

xxxx|A|B|C|D|E
xxxx|P|Q|R|S|T
DATE|L|M|N|O|P
01/02/1997|12|4|5|0|0
01/03/1998|71|2|4|8|0

列が次のようになるようにデータをデータフレームに保存したい:

 A   01/02/1997   P   L  12
 B   01/02/1997   Q   M   4
 C   01/02/1997   R   N   5
 D   01/02/1997   S   O   0
 E   01/02/1997   T   P   0
 A   01/03/1998   P   L  71
 B   01/03/1998   Q   M   2
 C   01/03/1998   R   N   4
 D   01/03/1998   S   O   8
 E   01/03/1998   T   P   0 

基本的に最初の列はピボットする必要があります。誰か助けてもらえますか?名前とデータは単なる例です(ダミー)

ジェズリール

最初の作成MultiIndex in columnsによりheader=[0,1,2]、パラメータとによってインデックスに最初の列を変換index_col=[0]read_csv

df = pd.read_csv(filename, sep="|", header=[0,1,2], index_col=[0])
print (df)
xxxx         A  B  C  D  E
xxxx         P  Q  R  S  T
DATE         L  M  N  O  P
01/02/1997  12  4  5  0  0
01/03/1998  71  2  4  8  0

詳細

print (df.columns)
MultiIndex([('A', 'P', 'L'),
            ('B', 'Q', 'M'),
            ('C', 'R', 'N'),
            ('D', 'S', 'O'),
            ('E', 'T', 'P')],
           names=['xxxx', 'xxxx', 'DATE'])

その後で移調DataFrame.Tすることによりリシェイプ、DataFrame.stackソートにより、DataFrame.sort_indexによりマルチインデックスのラベルを作成し、DataFrame.rename_axisそして最後に変換MultiIndex SeriesするDataFrameことによりSeries.reset_index

df1 = (df.T
         .stack(dropna=False)
         .sort_index(level=3)
         .rename_axis(('a','b','c','d'))
         .reset_index(name='e'))
print (df1)
   a  b  c           d   e
0  A  P  L  01/02/1997  12
1  B  Q  M  01/02/1997   4
2  C  R  N  01/02/1997   5
3  D  S  O  01/02/1997   0
4  E  T  P  01/02/1997   0
5  A  P  L  01/03/1998  71
6  B  Q  M  01/03/1998   2
7  C  R  N  01/03/1998   4
8  D  S  O  01/03/1998   8
9  E  T  P  01/03/1998   0

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

データフレームを固定列数にピボットしますsparksql

分類Dev

列(ID)ごとにデータフレームをピボットします

分類Dev

dequeをcsvデータフレームに保存します

分類Dev

deedleデータフレームのピボットを解除します

分類Dev

value_counts()を使用したgroupby結果の後にデータフレームをピボットします

分類Dev

ボットフレームワークは、ユーザーIDによってデータベースにユーザーデータを保存します

分類Dev

ピボットを使用してデータフレームを目的の形式に並べ替えます

分類Dev

2つのデータフレームからデータを収集して、新しいデータフレームに保存します

分類Dev

テキストファイルから列を抽出し、Pythonのデータフレームに保存します

分類Dev

Azure BLOBストレージからcsvを読み取り、Pythonを使用してデータフレームに保存します

分類Dev

開始日と終了日のデータフレームを真理値表にピボットします

分類Dev

Pythonデータフレームで複数の列を行に変換/ピボット解除します

分類Dev

ピボットから作成されたデータフレームのインデックスを設定します

分類Dev

日付ピッカーを使用して、フォームからデータベースに値を保存する

分類Dev

パンダ:文字で始まる行をデータフレームから削除し、CSVを保存します

分類Dev

データフレームのリストをピボットしてマージします

分類Dev

テーブルからデータをスクレイピングしてcsvファイルに保存する

分類Dev

groupBy列なしでSparkデータフレームをピボットする

分類Dev

Laravel 5.7で保存した後、ピボットテーブルからデータを取得します

分類Dev

Laravelは、ピボットの追加フィールドに応じて、ピボットからモデルをアタッチ/デタッチします

分類Dev

PythonでPandasデータフレームをピボット/アンスタックします

分類Dev

元のリストの列名なしで、ピボットされたパンダデータフレームから列名を取得します

分類Dev

kdbテーブルをデータフレームに保存してから、データフレームをcsvに保存します。nullと文字列の値がcsvに正しく出力されていませんか?

分類Dev

マルチインデックスを使用して、ピボットされたデータフレームから元のデータフレームを取得します

分類Dev

ダッシュのボタンをクリックした後、データフレームからdash_tableにデータを入力します

分類Dev

pandasデータフレーム列から括弧の周りのテキストをフェッチし、出力を同じ列にコピーします

分類Dev

ピボットテーブルパッケージから生成されたピボットテーブルをデータフレームに変換します

分類Dev

PandasPythonを使用したデータフレーム内のピボットデータからのデータ形式の変更

分類Dev

data.tableパッケージのset()を使用して、データフレーム作成のループ内でデータフレームから別のデータフレームに値をコピーして貼り付けます

Related 関連記事

  1. 1

    データフレームを固定列数にピボットしますsparksql

  2. 2

    列(ID)ごとにデータフレームをピボットします

  3. 3

    dequeをcsvデータフレームに保存します

  4. 4

    deedleデータフレームのピボットを解除します

  5. 5

    value_counts()を使用したgroupby結果の後にデータフレームをピボットします

  6. 6

    ボットフレームワークは、ユーザーIDによってデータベースにユーザーデータを保存します

  7. 7

    ピボットを使用してデータフレームを目的の形式に並べ替えます

  8. 8

    2つのデータフレームからデータを収集して、新しいデータフレームに保存します

  9. 9

    テキストファイルから列を抽出し、Pythonのデータフレームに保存します

  10. 10

    Azure BLOBストレージからcsvを読み取り、Pythonを使用してデータフレームに保存します

  11. 11

    開始日と終了日のデータフレームを真理値表にピボットします

  12. 12

    Pythonデータフレームで複数の列を行に変換/ピボット解除します

  13. 13

    ピボットから作成されたデータフレームのインデックスを設定します

  14. 14

    日付ピッカーを使用して、フォームからデータベースに値を保存する

  15. 15

    パンダ:文字で始まる行をデータフレームから削除し、CSVを保存します

  16. 16

    データフレームのリストをピボットしてマージします

  17. 17

    テーブルからデータをスクレイピングしてcsvファイルに保存する

  18. 18

    groupBy列なしでSparkデータフレームをピボットする

  19. 19

    Laravel 5.7で保存した後、ピボットテーブルからデータを取得します

  20. 20

    Laravelは、ピボットの追加フィールドに応じて、ピボットからモデルをアタッチ/デタッチします

  21. 21

    PythonでPandasデータフレームをピボット/アンスタックします

  22. 22

    元のリストの列名なしで、ピボットされたパンダデータフレームから列名を取得します

  23. 23

    kdbテーブルをデータフレームに保存してから、データフレームをcsvに保存します。nullと文字列の値がcsvに正しく出力されていませんか?

  24. 24

    マルチインデックスを使用して、ピボットされたデータフレームから元のデータフレームを取得します

  25. 25

    ダッシュのボタンをクリックした後、データフレームからdash_tableにデータを入力します

  26. 26

    pandasデータフレーム列から括弧の周りのテキストをフェッチし、出力を同じ列にコピーします

  27. 27

    ピボットテーブルパッケージから生成されたピボットテーブルをデータフレームに変換します

  28. 28

    PandasPythonを使用したデータフレーム内のピボットデータからのデータ形式の変更

  29. 29

    data.tableパッケージのset()を使用して、データフレーム作成のループ内でデータフレームから別のデータフレームに値をコピーして貼り付けます

ホットタグ

アーカイブ