グループに基づいて列を行に転置

Datamash: Transposing the column into rows based on group in bash – StackOverflow

A 123
A 23
A 45
A 67
B 88
B 72
B 50
B 23
C 12
C 14

↓

A 123 23 45 67
B 88  72 50 23
C 12 14

スマホでちょっとした作業をしたい場合には,datamashが便利.
(Bashで処理する場合も,datamashが有効な場合は極めて効率的)

ただ,ネットに繋がる環境であれば,Python(Pandas)を使わない理由が無い.

import io
import pandas as pd


strings = """A 123
A 23
A 45
A 67
B 88
B 72
B 50
B 23
C 12
C 14"""

df = (
    pd.read_csv(io.StringIO(strings), sep='\s+', header=None)
    .assign(col=lambda df: df.groupby(0).cumcount())
    .pivot(index=0, columns='col', values=1)
    .fillna('')
    .rename_axis(index='', columns='')
)
df
    0   1   2   3
A   123.0   23.0    45  67
B   88.0    72.0    50  23
C   12.0    14.0        
広告
カテゴリー: 未分類 パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください