作者goldflower (金色小黄花)
看板Python
标题[问题] pandas块状(?)的运算
时间Wed Feb 21 22:41:20 2018
这问题实在不知道怎麽打在标题上QQ
想要达成夹在中间的column如果连续5次为同一个值就用相邻的两个column做平均补值
并且假设不会连续两个column都发生这个情形
例子如下, 假设我有一个dataframe如:
colA colB colC colD
1 1 2 1 0
2 2 0 1 1
3 1 1 1 1
4 2 2 1 2
5 1 3 1 1
6 1 2 2 2
7 2 2 2 2
8 . . . .
9 . . . .
10 . . . .
首先看colA, colB, colC, 发现colB不用补值
接下来看colB, colC, colD, 发现colC前五个需要补值为1, 0.5, 1, 2, 2
然後index 6-10也做一样的检查, 依此类推
虽然用for很容易处理
但是各位也知道pandas的for奇慢无比
所以想问问有没有不用用到for就能处理的写法
如果无法的话最後的方法大概就是转成numpy array再去写了XD
先感谢各位pandas高手了
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.113.215.35
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1519224084.A.897.html
※ 编辑: goldflower (140.113.215.35), 02/21/2018 23:05:24
※ 编辑: goldflower (140.113.215.35), 02/21/2018 23:53:39
1F:推 TitanEric: 我觉得转numpy比较好 sorry没回答到问题 02/22 10:01
不用sorry la 该转的时候就要毫不犹豫的转XD
2F:推 iphone2003: 试试看rolling? 02/22 18:13
喔喔 这说不定有用 rolling+apply应该能解掉
我後来是想到合并column後用Grouper + aggregate大概能处理
但是rolling似乎比较好的感觉 待会来测测看@@ 感谢
※ 编辑: goldflower (140.113.215.35), 02/22/2018 21:09:16
3F:推 vfgce: 你的资料是检查index 1-5,6-10,11-15...还是1-5,2-6,3-7... 02/23 09:50
4F:→ goldflower: 是後者 所以才觉得rolling似乎更好 太废惹QQ 02/24 00:25