是否有任何有效或高效的方法可以从 python 中的数据框中找到数字的净位置
is there any effective or efficient way to find net position of numbers from a data frame in python
我有一个多索引 df,列为“Turtle”
| | | Turtle | Net Pos|
|-----------|--------|--------|--------|
|2004-11-04 |09:24 |6 | |
| |09:34 |2 | |
| |09:44 |0 | |
| |09:54 |4 | |
| |09:04 |1 | |
| |09:14 |2 | |
| |09:24 |9 | |
turtle_factor = 3
base_quantity = 2
我需要的是“Net Pos”。我想不出一种优雅的方法。
我需要的是使用 Numpy 或 Pandas 的 col Net position
数据集庞大,需要使用递归,避免crash。
计算
6 会被洒在 6 次 1
1 1 1 1 1 1
先1会乘base_quantity,所以1*2
第二个 1 将与第一个 1 的结果相乘,海龟因子为 2*3
第三个1将乘以第二个1的计算结果乘以6*3以上的海龟因子
第四个将乘以第三个1的计算结果乘以18*3以上的海龟因子,依此类推
最后将它们相加得到如下第一行的结果 728
| | | Turtle | Net Pos|
|-----------|--------|--------|--------|
|2004-11-04 |09:24 |6 | 728 |
| |09:34 |2 | 8 |
| |09:44 |0 | 0 |
| |09:54 |4 | 80 |
| |09:04 |1 | 2 |
| |09:14 |2 | 8 |
| |09:24 |9 | 19682 |
有一个简单的公式可以将 Turtle
映射到 Net Pos
。计算可以表示为几何级数时间的总和base_quantity,产生下面的函数f
。
turtle_factor = 3
base_quantity = 2
def f(n):
return base_quantity * (turtle_factor ** n - 1) // (turtle_factor - 1)
df = pd.DataFrame({
"Turtle": [6, 2, 0, 4, 1, 2, 9],
})
df["Net Pos"] = f(df.Turtle)
我有一个多索引 df,列为“Turtle”
| | | Turtle | Net Pos|
|-----------|--------|--------|--------|
|2004-11-04 |09:24 |6 | |
| |09:34 |2 | |
| |09:44 |0 | |
| |09:54 |4 | |
| |09:04 |1 | |
| |09:14 |2 | |
| |09:24 |9 | |
turtle_factor = 3
base_quantity = 2
我需要的是“Net Pos”。我想不出一种优雅的方法。 我需要的是使用 Numpy 或 Pandas 的 col Net position 数据集庞大,需要使用递归,避免crash。
计算
6 会被洒在 6 次 1
1 1 1 1 1 1
先1会乘base_quantity,所以1*2
第二个 1 将与第一个 1 的结果相乘,海龟因子为 2*3
第三个1将乘以第二个1的计算结果乘以6*3以上的海龟因子
第四个将乘以第三个1的计算结果乘以18*3以上的海龟因子,依此类推 最后将它们相加得到如下第一行的结果 728
| | | Turtle | Net Pos|
|-----------|--------|--------|--------|
|2004-11-04 |09:24 |6 | 728 |
| |09:34 |2 | 8 |
| |09:44 |0 | 0 |
| |09:54 |4 | 80 |
| |09:04 |1 | 2 |
| |09:14 |2 | 8 |
| |09:24 |9 | 19682 |
有一个简单的公式可以将 Turtle
映射到 Net Pos
。计算可以表示为几何级数时间的总和base_quantity,产生下面的函数f
。
turtle_factor = 3
base_quantity = 2
def f(n):
return base_quantity * (turtle_factor ** n - 1) // (turtle_factor - 1)
df = pd.DataFrame({
"Turtle": [6, 2, 0, 4, 1, 2, 9],
})
df["Net Pos"] = f(df.Turtle)