部分的な文字列を含むデータフレームのピボットを解除する

悪い習慣

次のようなデータフレーム(totaldf)があります。

           ...     Hom   ...    March Plans   March Ships   April Plans   April Ships   ...

0                  CAD   ...    12              5           4             13
1                  USA   ...    7               6           2             11
2                  CAD   ...    4               9           6             14
3                  CAD   ...    13              3           9             7
...                ...   ...    ...             ...         ...           ...

一年のすべての月の間。私はそれをしたい:

           ...     Hom   ...    Month   Plans    Ships    ...

0                  CAD   ...    March    12          5             
1                  USA   ...    March    7           6             
2                  CAD   ...    March    4           9             
3                  CAD   ...    March    13          3
4                  CAD   ...    April    4           13            
5                  USA   ...    April    2           11             
6                  CAD   ...    April    6           14             
7                  CAD   ...    April    9           7
...                ...   ...    ...      ...         ...

文字列エントリを分割せずにこれを行う簡単な方法はありますか?私は遊んtotaldf.unstack()だことがありますが、複数の列があるため、データフレームのインデックスを適切に再作成する方法がわかりません。

yatu

ドキュメントに記載されているように、pd.wide_to_long権利をstubnames取得するために少し余分な作業を加えて、を使用できます

スタブ名。ワイドフォーマット変数は、スタブ名で始まると想定されています。

したがって、スタブ名が各列名の先頭にくるように、列名を少し変更する必要があります。

m = df.columns.str.contains('Plans|Ships')
cols = df.columns[m].str.split(' ')
df.columns.values[m] = [w+month for month, w in cols]

print(df)
   Hom  PlansMarch  ShipsMarch  PlansApril  ShipsApril
0  CAD          12           5           4          13
1  USA           7           6           2          11
2  CAD           4           9           6          14
3  CAD          13           3           9           7

これで、使用pd.wide_to_long['Ships', 'Plans']てスタブ名を使用て、必要な出力を取得できます。

((pd.wide_to_long(df.reset_index(), stubnames=['Ships', 'Plans'], i = 'index', 
                j = 'Month', suffix='\w+')).reset_index(drop=True, level=0)
                .reset_index())

x  Month  Hom  Ships  Plans
0  March  CAD      5     12
1  March  USA      6      7
2  March  CAD      9      4
3  March  CAD      3     13
4  April  CAD     13      4
5  April  USA     11      2
6  April  CAD     14      6
7  April  CAD      7      9

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

データフレーム内の文字列を含む1つの列をピボットする方法は?

分類Dev

文字列を含むPandasデータフレームのピボット-'集計する数値タイプがありません'エラー

分類Dev

テキストデータでパンダデータフレームのピボットを解除する

分類Dev

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

分類Dev

数値以外のデータを含むインデックス列に重複があるピボット/ Groupbyデータフレーム

分類Dev

「/」などの特殊文字を含む文字列を含むデータフレームをサブセット化します

分類Dev

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

分類Dev

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

分類Dev

文字列のリストを含むデータフレーム列で文字列を検索し、完全なデータフレームを返します

分類Dev

セットを含むデータフレームの列をコピーします。

分類Dev

pandasデータフレームの特定の列をピボットする

分類Dev

データフレームのピボットを解除してパンダに参加する

分類Dev

パンダでデータフレームのピボットを解除する方法

分類Dev

Rのリストを含む列を使用してデータフレームを要約解除します

分類Dev

データフレームの値を列に「ピボット」する方法

分類Dev

2列のデータフレームをピボットする

分類Dev

Pythonデータフレーム列で「(」を含む部分文字列を検索する方法

分類Dev

追加の列を重複排除しながらPandasデータフレームをピボットする

分類Dev

Rでセクションとサブセクションを含む列で構成されるデータフレームをピボットする方法

分類Dev

部分文字列を含むパンダデータフレームで値を検索する

分類Dev

pandasデータフレームをMultiIndexではなく接頭辞付きの列にピボットする

分類Dev

文字列の凍結セットを含むパンダデータフレーム列のフィルター

分類Dev

Pythonのリストにある文字列を含むデータフレーム列のすべての行を識別する最も効率的な方法は?

分類Dev

特殊文字も含む部分的な文字列値に基づいてデータフレームをフィルタリングする

分類Dev

pandasデータフレーム内の特定の文字を含む部分文字列を削除するにはどうすればよいですか?

分類Dev

データフレームを整頓された形式に変換する方法(ピボット解除)?

分類Dev

Pythonで文字列のセットを含むデータフレーム行をフィルタリングする

分類Dev

さまざまな長さのリストを含むデータフレームをネスト解除またはアンネストする

分類Dev

Pandasデータフレームの変換:ピボット解除

Related 関連記事

  1. 1

    データフレーム内の文字列を含む1つの列をピボットする方法は?

  2. 2

    文字列を含むPandasデータフレームのピボット-'集計する数値タイプがありません'エラー

  3. 3

    テキストデータでパンダデータフレームのピボットを解除する

  4. 4

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

  5. 5

    数値以外のデータを含むインデックス列に重複があるピボット/ Groupbyデータフレーム

  6. 6

    「/」などの特殊文字を含む文字列を含むデータフレームをサブセット化します

  7. 7

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

  8. 8

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

  9. 9

    文字列のリストを含むデータフレーム列で文字列を検索し、完全なデータフレームを返します

  10. 10

    セットを含むデータフレームの列をコピーします。

  11. 11

    pandasデータフレームの特定の列をピボットする

  12. 12

    データフレームのピボットを解除してパンダに参加する

  13. 13

    パンダでデータフレームのピボットを解除する方法

  14. 14

    Rのリストを含む列を使用してデータフレームを要約解除します

  15. 15

    データフレームの値を列に「ピボット」する方法

  16. 16

    2列のデータフレームをピボットする

  17. 17

    Pythonデータフレーム列で「(」を含む部分文字列を検索する方法

  18. 18

    追加の列を重複排除しながらPandasデータフレームをピボットする

  19. 19

    Rでセクションとサブセクションを含む列で構成されるデータフレームをピボットする方法

  20. 20

    部分文字列を含むパンダデータフレームで値を検索する

  21. 21

    pandasデータフレームをMultiIndexではなく接頭辞付きの列にピボットする

  22. 22

    文字列の凍結セットを含むパンダデータフレーム列のフィルター

  23. 23

    Pythonのリストにある文字列を含むデータフレーム列のすべての行を識別する最も効率的な方法は?

  24. 24

    特殊文字も含む部分的な文字列値に基づいてデータフレームをフィルタリングする

  25. 25

    pandasデータフレーム内の特定の文字を含む部分文字列を削除するにはどうすればよいですか?

  26. 26

    データフレームを整頓された形式に変換する方法(ピボット解除)?

  27. 27

    Pythonで文字列のセットを含むデータフレーム行をフィルタリングする

  28. 28

    さまざまな長さのリストを含むデータフレームをネスト解除またはアンネストする

  29. 29

    Pandasデータフレームの変換:ピボット解除

ホットタグ

アーカイブ