python - 如何仅参考第一列计算熊猫中的 pct_change
问题描述
我有一个数据框:
df = pd.DataFrame({
"A": [1, 5, 2, 5, 6],
"B": [-12, 23, 5, 22, 35],
"C": [-32, 12, -10, 3, 2],
"D": [2, 13, 6, 2, 8]
})
现在,我想计算百分比变化,axis=1
但仅参考"A"
所有列,例如"B"
wrt "A"
、"C"
wrt等的百分比变化"A"
。
该pct_change
函数执行类似的工作,但它计算我不想要的连续行或列的百分比变化。
现在,我正在考虑通过可能的 for 循环并添加百分比或拆分数据框(如["A", "B"]
,["A", "C"]
等)来实现这一点,然后pct_change
分别应用于所有这些。
我认为后一种方法更好,但问题是,
有没有更好的方法可以做同样的工作?
解决方案
您可以在熊猫中使用除法功能,将所有列与列A
pct = df.divide(df["A"], axis="index") - 1
pct.head()
结果:
一个 | 乙 | C | D | |
---|---|---|---|---|
0 | 0.0 | -13.000000 | -33.000000 | 1.000000 |
1 | 0.0 | 3.600000 | 1.400000 | 1.600000 |
2 | 0.0 | 1.500000 | -6.000000 | 2.000000 |
3 | 0.0 | 3.400000 | -0.400000 | -0.600000 |
4 | 0.0 | 4.833333 | -0.666667 | 0.333333 |
推荐阅读
- typescript - 为什么 typescript 认为我的 any 是未知数?
- c - 在 C 中出现错误,表示在 '{' 标记之前不允许函数定义
- xcode - 如何在 Xcode 中使用苹果的新型“清晰”背景
- .htaccess - 将目录添加到具有 wp-content 的所有传入链接
- linux - 批评我的 docker 入口点 sed 以重新加载 nginx
- sql - SQL - 在正则表达式之后获取第三个字符串
- python - 在量化中使用代表性数据集的生成器时,“无法将值转换为可读张量”
- wordpress - 使用不同的发件人电子邮件
- google-bigquery - JSONL 文件中的记录未作为记录上传到 BigQuery
- kubernetes - Istio JWT 身份验证,用于入口网关后面的单个服务