如何在我的 Pandas 数据框中合并绝对值?
Posted
技术标签:
【中文标题】如何在我的 Pandas 数据框中合并绝对值?【英文标题】:How do I incorporate absolute value within my Pandas dataframe? 【发布时间】:2021-05-18 19:30:00 【问题描述】:id | Impressions_Source | Impressions_Source2 |
---|---|---|
15020 | 150201 | 151920 |
我试图弄清楚如何利用绝对值计算两个值之间的百分比差异(差异)。
这是我使用的公式
df['Discrepancy_Num'] = (df['Impressions_Source'] - df['Impressions_Source2']) / (df['Impressions_Source'] * 100)
我可以在之后添加 .abs 吗?
df['Discrepancy_Num'] = (df['Impressions_Source'] - df['Impressions_Source2']) / (df['Impressions_Source'] * 100).abs
【问题讨论】:
【参考方案1】:之后您可以拨打.abs()
:
df["Discrepancy_Num"] = (
(df["Impressions_Source"] - df["Impressions_Source2"])
/ (df["Impressions_Source"] * 100)
).abs()
print(df)
打印:
id Impressions_Source Impressions_Source2 Discrepancy_Num
0 15020 150201 151920 0.000114
【讨论】:
【参考方案2】:我会去
df["Discrepancy_Num"] = (
-1 + df.Impressions_Source2/df.Impressions_Source
).abs()/100
因为您可以避免访问df.Impressions_Source
两次。实际上,结果与您的相同,源于重新排列的公式。
【讨论】:
旁注:你确定df["Impressions_Source"] * 100
@Bo 吗?乍一看你的计算让我想到了一个相对的变化。 people usually do 是 multiplying final result 乘以 100 的东西,这样他们就可以附加一个百分比符号给它。如果这是您真正想要做的,只需将 my /100
替换为 *100
。但我可能完全错了:你知道自己在做什么。【参考方案3】:
你也可以使用numpy.absolute
函数
import numpy as np
df['Discrepancy_Num'] = np.absolute(df['Impressions_Source'] - df['Impressions_Source2']) / (df['Impressions_Source'] * 100)
【讨论】:
以上是关于如何在我的 Pandas 数据框中合并绝对值?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 imdb 获取更多信息并将其保存在 pandas 数据框中? [复制]
Python pandas:在我的数据框中添加一个计算变量的列