【发布时间】:2021-12-23 15:21:00
【问题描述】:
我有一个 Pandas 数据框,不知道如何做我希望做的事情。这是数据帧的 sn-p,我也在上传 screenshot。实际上,我想创建一个新列,定义为计数为“3--2”的音高。
为此,我想遍历所有行。对于给定的行(我将其称为原始行),如果 prev_count == '3--2' 我想要
- 将数据帧行降级到
prev_count != '3--2' - 确认该行与原始行具有相同的
batter-pitcher标识符 - 连续一次满足条件
prev_count != '3--2'ANDbatter-pitcher(原始行) ==batter-pitcher(新行),我想提取新行的pitch_number - 然后将使用以下公式计算原始行中新列的值:
pitch_number(原行)+ 1 -pitch_number(新行)
以现有数据框为例...索引 62、4、186、87 和 252 的新列的值为 1。索引 171 的值为 3; 177 值为 2; 192 的值为 1。同样,191 的值为 5;对于这个新列变量,229、10 和 57 的值也将为 1。
player_name batter-pitcher pitch_number count prev_count
62 Graveman, Kendall 501303---608665 6 3--2 3--1
4 Smyly, Drew 608665---592767 6 3--2 2--2
186 Graveman, Kendall 592696---608665 8 3--2 2--2
87 Maton, Phil 621020---664208 6 3--2 3--1
252 Martin, Chris 514888---455119 6 3--2 2--2
171 Urquidy, José 624585---664353 8 3--2 3--2
177 Urquidy, José 624585---664353 7 3--2 3--2
192 Urquidy, José 624585---664353 6 3--2 3--1
191 García, Yimi 594807---554340 12 3--2 3--2
198 García, Yimi 594807---554340 11 3--2 3--2
209 García, Yimi 594807---554340 10 3--2 3--2
219 García, Yimi 594807---554340 9 3--2 3--2
229 García, Yimi 594807---554340 8 3--2 2--2
10 Valdez, Framber 592696---664285 6 3--2 2--2
57 Valdez, Framber 518692---664285 6 3--2 2--2
对于如何 1) 循环遍历数据帧上的行,然后 2) 在循环的每个块中,降低行和 3) 在另一行中引用数据帧中的其他列,我有点不知所措,所以非常感谢这里的一些指导。非常感谢!
【问题讨论】:
标签: python pandas dataframe loops