How can I perform a value dependent pivot table/Groupby in Pandas?

How can I perform a value dependent pivot table/Groupby in Pandas? – StackOverflow

import io
import pandas as pd


strings = """      Tran ID    Category    Quantity 
   0   001          A           5
   1   001          B           2 
   2   001          C           3
   3   002          A           4
   4   002          C           2
   5   003          D           6 """

df = pd.read_csv(io.StringIO(strings), sep='\s{2,}', dtype={'Tran ID': str}, engine='python')
display(df)

res = pd.concat((pd.get_dummies(df['Category']).astype(bool), df['Quantity']), 1).groupby(df['Tran ID']).sum()
display(res)


pd.read_csv(
    io.StringIO(strings), 
    sep='\s{2,}', 
    dtype={'Tran ID': str}, 
    engine='python'
).pipe(lambda df: 
       df['Category'].pipe(pd.get_dummies)
                     .groupby(df['Tran ID']).sum().astype(bool)
                     .join(df['Quantity'].groupby(df['Tran ID']).sum())
)
Tran ID Category    Quantity
0   001 A   5
1   001 B   2
2   001 C   3
3   002 A   4
4   002 C   2
5   003 D   6
A   B   C   D   Quantity
Tran ID                 
001 True    True    True    False   10
002 True    False   True    False   6
003 False   False   False   True    6
A   B   C   D   Quantity
Tran ID                 
001 True    True    True    False   10
002 True    False   True    False   6
003 False   False   False   True    6
広告
カテゴリー: 未分類 パーマリンク

コメントを残す

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

WordPress.com ロゴ

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

Google フォト

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

Twitter 画像

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

Facebook の写真

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

%s と連携中