假设我有以下DataFrame:
df
df = pd.DataFrame({"a" : [1,2,2,2,2,2,2,2,2,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5], "b" : [3,3,3,3,3,3,3,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,7,7], "c" : [4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,1,2,2,2,2,2,2,2,2,3,3]})
我希望替换任何列中连续重复超过10次的数字4,用10个数字4和余下的数字5代替(可能有数百列)。
例如,12个连续的数字4将被替换为十个数字4和两个数字5。
我该如何在Pandas中实现这一点?
我想应用一个lambda函数,但我不知道如何回溯足够多的行,而且它必须从末尾开始并向前移动,否则就会破坏值序列。每个查找都必须查看前面的10行,以查看它们是否全部等于4,如果是,则将当前值设置为5。
不过我完全不知道如何着手!
for column in df.columns
来完成吗? - Chrisa
和c
。 - jezraelconcat
以便更好地验证输出,请检查最后一次编辑。 - jezrael