我有Pandas的df
将pandas导入为pdimport pandas as pd df = pd.DataFrame(['AA', 'BB', 'CC'], columns = ['value'])
我想迭代df中的行。对于每一行,我希望行的值和下一行的值。
这就是我们想要的结果。0 1 AA BB 1 2 BB CC
我用itertools尝试了一个pairwise()函数。from itertools import tee, izip def pairwise(iterable): "s -> (s0,s1), (s1,s2), (s2, s3), ..." a, b = tee(iterable) next(b, None) return izip(a, b) import pandas as pd df = pd.DataFrame(['AA', 'BB', 'CC'], columns = ['value']) for (i1, row1), (i2, row2) in pairwise(df.iterrows()): print i1, i2, row1["value"], row2["value"]
但是,它太慢了。你知道如何用iterrows实现输出吗?我想尝试pd.apply用于大型数据集。
2条答案
按热度按时间eyh26e7m1#
您可以简单地使用
shift
,然后使用dropna
抛出最后一行:mwecs4sa2#
虽然这不是最“花哨”的方法--我只使用一个数字迭代器并访问i和i+1行