在处理数据集时,通常需要计算值随时间或不同类别之间的差异或变化。在 Pandas 中,您可以利用 groupby() 和 diff() 函数高效地执行这些计算。
在给定的场景中,您有一个 DataFrame,其中包含各个网站上的数据及其在不同国家/地区的分数。您的目标是确定每个网站国家/地区组合的 1/3/5 天分数差异。
首先,按网站、国家/地区和地区对 DataFrame 进行排序日期列。排序可确保相似的数据点分组在一起,从而更容易计算差异。
<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 填充缺失值,确保数据集一致且完整。
生成的 DataFrame 将包含原始数据以及计算出的分数差异:
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
此 DataFrame 为每个站点/国家/地区组合提供所需的 1/3/5 天分数差异。
以上是如何计算 Pandas 中多个网站和国家的分数差异?的详细内容。更多信息请关注PHP中文网其他相关文章!