python pandas... pandas中iterrows的替代方法来获取下一行的值(新)

yduiuuwa  于 2023-06-04  发布在  Python
关注(0)|答案(2)|浏览(172)

我有Pandas的df
将pandas导入为pd
import 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用于大型数据集。

eyh26e7m

eyh26e7m1#

您可以简单地使用shift,然后使用dropna抛出最后一行:

df['next_value'] = df.value.shift(-1)
df.dropna(inplace=True)
>>> df
        value   next_value
0          AA           BB
1          BB           CC
mwecs4sa

mwecs4sa2#

虽然这不是最“花哨”的方法--我只使用一个数字迭代器并访问i和i+1行

相关问题