大家好,我是皮皮。
一、前言
前几天在Python白银交流群【还有多远】问了一个Pandas处理的问题,这里拿出来给大家分享下。
看上去不太好理解,这里继续给个样式。
只有一个条件为真,i < 3300 and i+1 > 3300 就为真,其余都为假 。
二、实现过程
这里【甯同学】给了一个代码,如下所示:
df.open.rolling(2).agg(lambda x:x.iloc[0]<3300 and x.iloc[1]>3300 )
简直太秀了,顺利地解决了粉丝的问题。
有的粉丝就郁闷了,为啥和粉丝要求的不一样呢?粉丝要求的是下图这样的。
不慌,只需要在代码后面加个map就搞定了,代码如下:
df.open.rolling(2).agg(lambda x:x.iloc[0]<3300 and x.iloc[1]>3300 ).map({1.0:True,0.0:False,np.nan:0.0})
三、总结
大家好,我是皮皮。这篇文章主要盘点了一个Pandas处理数据的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。
最后感谢粉丝【还有多远】提问,感谢【甯同学】给出的思路和代码解析,感谢【崔艳飞】、【论草莓如何成为冻干莓】、【空翼】等人参与学习交流。