1
複数の列の行の値を、グループに基づいて新しいdfの新しい列に繰り返し追加したいとします。
私の目標は、顧客ごとに1行、タイムラインに1列、各イベントの日付、イベントの説明、すべての日付とイベントを時系列順に並べたものです。
私はこれを一連の辞書で解決しました。
import pandas as pd
df_have = pd.DataFrame({'Customer_ID':['customer_1','customer_1','customer_1','customer_2','customer_2'],
'Event':['purchased cornflakes','purchased eggs', 'purchased waffles','sold eggs','purchased cows'],
'Date':['2011-06-16','2011-06-13','2011-06-09','2011-06-13','2011-06-18']})
df_have['Date'] = pd.to_datetime(df_have['Date'])
df_have.sort_values(['Customer_ID','Date'], inplace =True)
df_have
例
など、イベント、このコードは、顧客への小さな変化で頻繁に実行されるように、これを実現するために、クリーンでエレガントな、パンダ風の道を探していますdf_want = pd.DataFrame({'Customer_ID':['customer_1','customer_2'],
'Time_Line':[['2011-06-09,purchased waffles,2011-06-13,purchased eggs,2011-06-16,purchased cornflakes'],
['2011-06-13,sold eggs,2011-06-18,purchased cows']]})
df_want
おかげで、これはbeautifありますul! stack()はdf_have.columnsに基づいて注文を選択していますか?たとえば、スタックの順序を変更するにはどうすればよいですか(たとえば、Date、EventではなくEvent、Date)?列名の文字列のリストを渡そうとしましたが、それは動作しません。 –
私の投稿を更新しました。 –
素晴らしい。ありがとうございました。それは私にとっては直感的ではありませんでした。 –