pandas 行前后操作

xiaoxiao2021-02-28  95

选择行的最快的方法不是遍历行。而是,创建一个mask(即,布尔数组),然后调用df[mask]选择。 这里有一个问题:如何动态表示dataframe中的当前行、前一行?答案是用shift。 shift(0):当前行 shift(1):前一行 shift(n):往前第n行

若要满足多个条件 逻辑与&: mask = ((...) & (...))

逻辑或|: mask = ((...) | (...))

逻辑非~:

mask = ~(...)

In [75]: df = pd.DataFrame({'A':range(5), 'B':range(10,20,2)}) In [76]: df Out[76]:     A   B 0  0  10 1  1  12 2  2  14 3  3  16 4  4  18 In [77]: mask = (df['A'].shift(1) + df['B'].shift(2) > 12) In [78]: mask Out[78]:  0    False 1    False 2    False 3     True 4     True dtype: bool In [79]: df[mask] Out[79]:     A   B 3  3  16 4  4  18

转载请注明原文地址: https://www.6miu.com/read-69241.html

最新回复(0)