Pandas で複数の Web サイトと国のスコアの差を計算するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-10-31 18:37:02
オリジナル
199 人が閲覧しました

How to Calculate Score Differences for Multiple Websites and Countries in Pandas?

Pandas を使用した複数のフィールドのグループ化と差異の検索

データセットを操作する場合、時間の経過に伴う、または異なるカテゴリにわたる値間の差異や変化を計算することが必要になることがよくあります。 Pandas では、groupby() 関数と diff() 関数を利用してこれらの計算を効率的に実行できます。

指定されたシナリオでは、さまざまな Web サイトのデータとさまざまな国のスコアを含む DataFrame があります。目標は、サイトの国の組み合わせごとに 1/3/5 日のスコア差を判断することです。

データフレームの並べ替えとグループ化

まず、データフレームをサイト、国、および基準で並べ替えます。日付列。並べ替えにより、類似したデータ ポイントが確実にグループ化され、差異の計算が容易になります。

<code class="python">df = df.sort_values(by=['site', 'country', 'date'])</code>
ログイン後にコピー

次に、groupby() 関数を使用して、データをサイトおよび国別にグループ化します。

<code class="python">grouped = df.groupby(['site', 'country'])</code>
ログイン後にコピー

差の計算

データがグループ化されたので、diff() 関数を使用してスコアの差を計算できるようになります。この関数は、グループ内の連続する行の差を計算します。

<code class="python">df['diff'] = grouped['score'].diff().fillna(0)</code>
ログイン後にコピー

diff() 関数は、デフォルトで欠損値を 0 で埋め、一貫性のある完全なデータセットを保証します。

結果のデータフレーム

結果のデータフレームには、元のデータと計算されたスコア差が含まれます。

         date    site country  score  diff
8  2018-01-01      fb      es    100   0.0
9  2018-01-02      fb      gb    100   0.0
5  2018-01-01      fb      us     50   0.0
6  2018-01-02      fb      us     55   5.0
7  2018-01-03      fb      us    100  45.0
1  2018-01-01  google      ch     50   0.0
4  2018-01-02  google      ch     10 -40.0
0  2018-01-01  google      us    100   0.0
2  2018-01-02  google      us     70 -30.0
3  2018-01-03  google      us     60 -10.0
ログイン後にコピー

このデータフレームは、サイト/国の組み合わせごとに、必要な 1/3/5 日のスコア差を提供します。

以上がPandas で複数の Web サイトと国のスコアの差を計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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