呼び出し日である「call_date」列と週数である「call_week」列を含むデータフレームがあります(週は必ずしも月曜日または日曜日に開始する必要はなく、正確に7日間続くとは限りません)。
私がやりたいのは、「-」で区切られた週の境界日を含む新しい列をデータフレームに追加することです。例えば、我々が持っている場合はWEEK
最小持つ68CALL_DATE
の2019-04-25
最大CALL_DATE
のを2019-04-30
、新しい列には値が含まれている必要があります2019-04-25 - 2019-04-30
。
私は試した: dfg = df.groupby('WEEK')['CALL_DATE'].agg(['min', 'max']).reset_index()
dfg
:
次に、これらの最小列と最大列をdf
viaに追加しましたjoin
。
df = df.join(dfg, lsuffix = 'WEEK', rsuffix = 'WEEK')
ここで、lambda
関数を適用して、結果を含む列にこれらの列を連結しようとしています。
df['WEEK_TEXT'] = df.apply(lambda x : x['min'].strftime("%d.%m.%Y") + ' - ' + x['max'].strftime("%d.%m.%Y"))
しかし、エラーが発生します: KeyError: ('min', 'occurred at index CONTACT_ID')
どうすれば修正できますか?
使用する方が良いですSeries.dt.strftime
:
df['WEEK_TEXT'] = df['min'].dt.strftime("%d.%m.%Y") + ' - ' + df['max'].dt.strftime("%d.%m.%Y")
ソリューションではaxis=1
、行ごとのプロセスに必要です。
f = lambda x : x['min'].strftime("%d.%m.%Y") + ' - ' + x['max'].strftime("%d.%m.%Y")
df['WEEK_TEXT'] = df.apply(f, axis=1)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加