パンダとの条件付きマージ

WBOY
リリース: 2024-02-22 13:07:09
転載
1224 人が閲覧しました

パンダとの条件付きマージ

質問の内容

以下に示すような pandas データフレームがあり、リージョンへの追加呼び出しの詳細が示されています。

通信日付0日目の増分1日目の増分2日目の増分01/01/24販売43362901/01/24 ###サービス### 85746602/01/24販売56423102/01/2473624903/01/24販売483203/01/24675846 ###サービス###
###エリア###
###サービス###
###24### ###サービス###
日付ごとに受けた電話の数を計算しようとしているので、1 月 1 日に受けた営業電話はその日付の day0_incremental (43) となり、1 月 2 日は 1 月 2 日の day0 に 1 月 1 日の Day1 (36) を加えたものになります。 ) 56) そして、1 月 3 日は、1 月 3 日の day0、1 月 2 日の day1、および 1 月 1 日の day2 (48 42 29) となり、次のデータ フレームが得られます。 通話日 販売

01/01/244392147195107 ###24### 範囲列の下に値がない 2 番目のテーブルのデータ フレームのシェルを正常に作成しましたが、次に何をすればよいかわかりません: for ループを書き始めましたが、まだここまでしか進みません: #正解shift## にダイヤルできます#と
85 02/01/24
03/01/24 119
04/01/24 63
05/01/2446
リーリー
df['commsdate'] = pd.to_datetime(df['commsdate'], format='%d/%m/%y')
areaunique = df['area'].unique().tolist()
from datetime import timedelta
calldate = pd.date_range(start=min(df['commsdate']), end=max(df['commsdate'])+timedelta(days=6), freq='d')

data = {area: [] for area in areaunique}

dfnew = pd.dataframe(data)

dfnew['calldate'] = calldate

dfnew = dfnew.melt(id_vars=['calldate'], var_name='area')

dfnew = dfnew.pivot(index='calldate', columns='area', values='value')

dfnew = dfnew.reset_index()

dfnew = dfnew[['calldate'] + areaunique]
ログイン後にコピー
pivot #,

追加

リーリー または、
dayx …

文字列から抽出した数値を使用して、プログラムで


functools.reduce

を使用します。 リーリー 出力: リーリー

以上がパンダとの条件付きマージの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート