gpt4 book ai didi

python - 使用pandas数据框中的多个行或列值进行计算

转载 作者:太空宇宙 更新时间:2023-11-03 18:29:12 25 4
gpt4 key购买 nike

我对excel如此满意的原因之一是,我可以轻松地传递一系列值或数组,并在计算中使用这些值中的一个或多个。

例如,说我有数组[1、2、1、5、7、10、6、20、12、7、4]

我可能要计算:


连续向上或向下序列的数量(例如1-2)将是1,因为2大于1。
在5、7、10的情况下,我想将此递增序列计为2,(5至7)和(7至10)
我还想计算实际上对序列有贡献的范围或值,以及它们发生的位置,例如,即使(6到10)仅连续1向上,但由于移动为14( 20-6)。关于序列发生的时间,我想记录数组索引的位置,或记录在另一列数字中的日期。


使用excel,我将此数组传递给一个函数,然后说是否Element(0)> element(1)移至element 2、3,依此类推,然后当我记录该值沿负方向下降时,求和这些价值观。

或者,如果我按照单元格的方式进行操作,那么我可以说(活动单元格值)是否为负,请使用.offset将两个值相加。

但是我不确定如何使用熊猫从行或列中从行或列中获取两个或多个值,就像我使用offset一样?

非常感谢,乔希。

更新>>谢谢您的更新,我将添加更多详细信息


基本上每个产品都有一组值,我有多个产品,其中产品位于一列中,并且与该产品相关联的是引用价格的多个数字。目前,我的桌子的布局如下所示,但是同一产品可能会在不同的日期出现在多行中:


'

|product    | price |
| Product A | 1 |
| Product B | 2 |
| Product C | 1 |
| Product D | 5 |
| Product E | 7 |
| Product F | 10 |
| Product G | 6 |
| Product H | 20 |
| Product I | 12 |
| Product H | 7 |
| Product I | 4 |



然后,与第一点一样,我想计算上一点的连续向上和向下序列的数量。对于从1到2的前两个点将为+1,如下所示:

|产品|价格|
|产品A | 0 |
|产品B | 1 |
|产品C | -1 |
|产品D | 4 |
|产品E | 2 |
|产品F | 3 |
|产品G | -4 |
|产品H | 14 |
|产品一| -8 |
|产品H | -4 |
|产品一| -3 |
然后,我想将这些移动分为几列,以便进行求和,并查看特定产品移动一定量的次数。


_

|product    | price | down -3 |down -2 |down -1 |up/down 0 |up 1     | 
| Product A | 1 | 0 | 0 | 0 | 0 | 0 |
| Product B | 2 | 0 | 0 | 0 | 0 | 1 |
| Product C | 1 | 0 | 0 | 1 | 0 | 0 |
| Product D | 5 | 0 | 0 | 0 | 0 | 0 |
| Product E | 7 | 0 | 0 | 0 | 0 | 0 |
| Product F | 10 | 0 | 0 | 0 | 0 | 0 |
| Product G | 6 | 0 | 0 | 0 | 0 | 0 |
| Product H | 20 | 0 | 0 | 0 | 0 | 0 |
| Product I | 12 | 0 | 0 | 0 | 0 | 0 |
| Product H | 7 | 0 | 0 | 0 | 0 | 0 |
| Product I | 4 | 1 | 0 | 0 | 0 | 0 |


_


接下来是问题(2),我想计算连续连续向上或向下移动的次数,并以与上面相同的格式表示它们|连续1 |连续2 |在列等中
接下来是问题(3),我想看看值的范围以及发生连续向上运动的日期。例如,产品C,D和E(假设产品C,D和E的价格日期为2014-01-01、2014-01-02和2014-01-03。这些产品显示出3个上升趋势行,值是1、5、7。所以我想展示一下。


_

|products |dates                    | values  |
|C, D, E | 2014-01-01 to 2014-01-03| 1, 5, 7 |


综上所述


我希望看到一天到第二天产品价格的变化(同一产品可以在不同的日期以不同的价格出售)。
然后,我想查看一个产品移动1点的次数,而不是同一产品移动20点的次数。然后,我可能会看到这样的模式:产品的价格不会经常变化,但是当价格上涨时,价格会大幅上涨。或者我可以通过对价格的变化求和来看到,产品价格交替出现的情况通常是先下降3点再上升3点,所以它是周期性的。
最后,我想看看价格何时移动3点(日期),以及价格在发生移动时的价值(1、5、7)。

最佳答案

在[1]中:s = pd.Series([1、2、1、5、7、10、6、20、12、7、4])

1:增加次数

In [3]: s.diff() > 0
Out[3]:
0 False
1 True
2 False
3 True
4 True
5 True
6 False
7 True
8 False
9 False
10 False
dtype: bool

In [4]: (s.diff() > 0).sum()
Out[4]: 5


2:减少次数:

In [5]: (s.diff() < 0).sum()
Out[5]: 5


3a:变更的大小:

In [6]: s.diff()
Out[6]:
0 NaN
1 1
2 -1
3 4
4 2
5 3
6 -4
7 14
8 -8
9 -5
10 -3
dtype: float64


3a:更改位置:

这应该已经由DataFrame或Series上的Index完成。

您应该张贴示例示例系列的预期输出。如果要对这些行进行任何处理,则可能必须先转置DataFrame。

关于python - 使用pandas数据框中的多个行或列值进行计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22659478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com