- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在整个数据集上应用一些逻辑时遇到问题。我能够将逻辑应用于一个小的“组”,但不能应用于所有的组(注意,这些组是由 primaryFilter
和 secondaryFilter
制作的。你们都介意给我指出正确的方向吗? ?
整个数据
import pandas as pd
import numpy as np
myInput = {
'primaryFilter': [100,100,100,100,100,100,100,100,100,100,200,200,200,200,200,200,200,200,200,200],
'secondaryFilter': [1,1,1,1,2,2,2,3,3,3,1,1,2,2,2,2,3,3,3,3],
'constantValuePerGroup': [15,15,15,15,20,20,20,17,17,17,10,10,30,30,30,30,22,22,22,22],
'someValue':[3,1,4,7,9,9,2,7,3,7,6,4,7,10,10,3,4,6,7,5]
}
df_input = pd.DataFrame(data=myInput)
df_input
df_test = df_input[df_input.primaryFilter.isin([100])]
df_test = df_test[df_test.secondaryFilter == 1.0]
df_test['newColumn'] = np.nan
for index,row in df_test.iterrows():
if index==0:
print("start")
df_test.loc[0, 'newColumn'] = 0
elif index==df_test.shape[0]-1:
df_test.loc[index, 'newColumn'] = df_test.loc[index-1, 'newColumn'] + df_test.loc[index-1, 'someValue']
print("end")
else:
print("inter")
df_test.loc[index, 'newColumn'] = df_test.loc[index-1, 'newColumn'] + df_test.loc[index-1, 'someValue']
df_test["delta"] = df_test["constantValuePerGroup"] - df_test['newColumn']
df_test.head()
这是测试的输出
100,2
和
100,3
和
200,1
等等..
最佳答案
无需使用iterrows
在这里,您可以group
primaryFilter
上的数据框和 secondaryFilter
列然后为每个唯一组取列 someValue
中值的累积总和和 shift
得到的累积和 1
向下持仓获得newColumn
.最后减去newColumn
来自 constantValuePerGroup
获取 delta
.
df_input['newColumn'] = df_input.groupby(['primaryFilter', 'secondaryFilter'])['someValue'].apply(lambda s: s.cumsum().shift(fill_value=0))
df_input['delta'] = df_input['constantValuePerGroup'] - df_input['newColumn']
>>> df_input
primaryFilter secondaryFilter constantValuePerGroup someValue newColumn delta
0 100 1 15 3 0 15
1 100 1 15 1 3 12
2 100 1 15 4 4 11
3 100 1 15 7 8 7
4 100 2 20 9 0 20
5 100 2 20 9 9 11
6 100 2 20 2 18 2
7 100 3 17 7 0 17
8 100 3 17 3 7 10
9 100 3 17 7 10 7
10 200 1 10 6 0 10
11 200 1 10 4 6 4
12 200 2 30 7 0 30
13 200 2 30 10 7 23
14 200 2 30 10 17 13
15 200 2 30 3 27 3
16 200 3 22 4 0 22
17 200 3 22 6 4 18
18 200 3 22 7 10 12
19 200 3 22 5 17 5
关于python - 在数据框中的许多组中应用 Pandas iterrows 逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66655210/
我编写了以下代码来创建数据框,并根据特定条件添加新的行和列。不幸的是,执行起来需要很多时间。 有其他方法可以做到这一点吗?任何意见都将受到高度赞赏。 dfCircuito=None for index
我有一个pandas数据框 from pandas import DataFrame, Series 其中每一行对应一个案例,每一列对应一个月份。我想在每 12 个月期间执行一次滚动求和。看起来很简单
我知道这个话题已经被讨论了一千次了。但我想不出解决办法。 我正在尝试计算列表(df1.list1 的每一行)在列表 (df2.list2) 的列中出现的频率。所有列表仅包含唯一值。 List1 包括大
我有这段代码,其中有大约 60k 行。完成整个过程大约需要 4 个小时。这段代码不可行,时间紧迫,想用apply代替iterrow。 这是代码, all_merged_k = pd.DataFrame
我有这段代码,其中有大约 60k 行。完成整个过程大约需要 4 个小时。这段代码不可行,时间紧迫,想用apply代替iterrow。 这是代码, all_merged_k = pd.DataFrame
我需要从 6 列数据帧的单行中选择 3 列,并将其附加到另一个只有 3 列的数据帧。 import pandas import numpy df1 = pd.DataFrame({'Name':['S
这个问题已经有答案了: Create Pandas DataFrame from txt file with specific pattern (6 个回答) 已关闭 4 年前。 我正在研究代表美国地
以下是示例数据 - 当前解决方案 - for idx, row in data.iterrows(): rp = row['right_player_test'] lp = row['
当我为每个客户创建新的数据框架时,我还想创建一个将所有这些数据框架附加在一起的巨大数据框架。 我创建了一个函数来按照我需要的方式对用户数据进行分组。现在我想迭代另一个包含唯一用户 key 的数据帧,并
d = {'2014-07-10 08:26:29.091199': {'Col':'12976482066142964'}, '2014-07-10 08:26:29.171198': {'Col'
我有一个数据集,其中包含几年来每天的美国国债曲线。行 = 日期,列 = 特定国债期限(3 个月、1 年、10 年等) 我有每天循环并校准利率模型参数的Python代码。我在通过 iterrows 和循
我有一个 pandas Dataframe 的形式: A B K S 2012-03-31 NaN NaN
我讨论了 iterrows 的性能问题 previously , 并得到了良好的普遍 react 。这个问题是一个特定的案例,我希望你能帮助我更好地应用一些东西,因为 iterrows 很慢。 我相信
我在 pandas 中有一个 df,它看起来像: id name values 1 a cat dog 2 b bird fly 我目前在做: for index, row
我相信有人也在 this thread 中报告过, 使用 iterrows() 填充数据框可能导致持久性问题。例如。像这样简单的东西: my_dataframe = pd.DataFrame(np.N
以下代码读取 csv 文件并遍历“子”列的行: df = pd.read_csv("Subs_test.csv", usecols= ['sub']) for index, row in df.ite
我是编程新手,到目前为止,这个问题已经“超出了我的薪水等级”,因此非常感谢您对此提供的任何帮助! 我有一个如下所示的 DataFrame 对象: Dan
我有两个数据集。 df Name Date Quantity ZMTD 2018-06-30 1000 ZMTD 2018-05-31 975 ZMT
我想知道在使用 iterrows 遍历 DataFrame 时如何使用索引而不是名称访问列。 这段代码是我能找到的最多的: for index, row in df.iterrows(): p
我有两个非常相似的 iterrows 循环,一个按我的预期工作,另一个不工作。我的问题是什么使第二个与第一个不同,为什么这会改变我的循环的行为?谢谢 工作循环 我正在使用数据框 drugs_tall
我是一名优秀的程序员,十分优秀!