前提・実現したいこと
PythonのPandasでデータを読み込み、特定の列の値でグループ化した上で、
別の列の文字列をカンマで区切って結合させたいと考えています。
具体的には、伝票番号ごとに単品の注文内容が列挙されているデータを、
伝票単位で注文内容を(カンマで区切って)まとめたいと考えています。
該当のソースコード
Python
1import pandas as pd 2order_df = pd.DataFrame({'伝票':['1', '1', '2', '2', '1'], 3 '注文':['ビール', '枝豆', 'ウイスキー', 'チョコ', '刺身']})
期待する結果
Python
1after_df = pd.DataFrame({'伝票':['1','2'], 2 '注文':['ビール,枝豆,刺身','ウイスキー,チョコ']})
試したこと
下記の方法では、「ビール枝豆刺身」のように、区切りがなく文字列がそのまま結合されてしまいます。
Python
1after_df = order_df.groupby('伝票').apply(lambda x: x.sum()).drop('伝票',axis=1).reset_index()
(カンマで区切るのではなく)リスト化させる方法として、下記の方法も見受けられたのですが、
「TypeError: 'DataFrameGroupBy' object is not callable」というエラーが出てしまいました。
Python
1after_df = order_df.groupby("伝票")["注文"].apply(list)

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/27 01:10