Pandas でグループ化、転置、追加を行うには? 質問する

Pandas でグループ化、転置、追加を行うには? 質問する

次のようなデータフレームがあります:

ここに画像の説明を入力してください

各ユーザーには 10 件のレコードがあります。ここで、次のようなデータフレームを作成します。

userid  name1  name2  ... name10

つまり、列のレコードを 10 個ごとに反転しname、新しいデータフレームに追加する必要があります。

それで、どうやってやるのでしょうか? Pandas でそれを実行する方法はありますか?

ベストアンサー1

groupby('userid')次に、reset_index各グループ内でグループ間で一貫して列挙します。次に、unstack列を取得します。

df.groupby('userid')['name'].apply(lambda df: df.reset_index(drop=True)).unstack()

デモンストレーション

df = pd.DataFrame([
        [123, 'abc'],
        [123, 'abc'],
        [456, 'def'],
        [123, 'abc'],
        [123, 'abc'],
        [456, 'def'],
        [456, 'def'],
        [456, 'def'],
    ], columns=['userid', 'name'])

df.sort_values('userid').groupby('userid')['name'].apply(lambda df: df.reset_index(drop=True)).unstack()

ここに画像の説明を入力してください

useridをインデックスとして使用したくない場合は、reset_index末尾に追加します。

df.sort_values('userid').groupby('userid')['name'].apply(lambda df: df.reset_index(drop=True)).unstack().reset_index()

ここに画像の説明を入力してください

おすすめ記事