大熊猫数据框选择每个新索引

时间:2020-05-04 12:51:26

标签: python pandas dataframe

我正在寻找一种简单的方法来从pandas数据框df中选择特定值。

我的df行如下所示:已进行编辑以使其更清晰

('df_c',     index   edge_id   source   target       dist      length     offset        ep
0       0   3993733  2072680  3740467   7.400719   66.983482  50.293263  0.989106
1       0   9337850  3740467  2072680   7.400719   66.983482  16.690219  0.989106
2       0   3993735  3740467  3740468  18.257438   51.693102   0.000000  0.935507
3       0   3993736  3740467  3740470  18.257438   80.415746   0.000000  0.935507
4       0   9337852  3740468  3740467  18.257438   51.693102  51.693102  0.935507
5       0   9337853  3740470  3740467  18.257438   80.415746  80.415746  0.935507
6       0   4917163  5293212  5474940  50.474509  113.242490  47.964551  0.600775
7       0  10261280  5474940  5293212  50.474509  113.242490  65.277939  0.600775
8       1   3993733  2072680  3740467   8.627149   66.983482  56.266520  0.985225
9       1   9337850  3740467  2072680   8.627149   66.983482  10.716962  0.985225
10      1   3993735  3740467  3740468  10.319909   51.693102   9.098376  0.978925
11      1   9337852  3740468  3740467  10.319909   51.693102  42.594727  0.978925
12      1   3993736  3740467  3740470  13.757942   80.415746   0.000000  0.962851
13      1   9337853  3740470  3740467  13.757942   80.415746  80.415746  0.962851
14      1   4565277  2072680  2072681  56.667011   53.626811   5.403604  0.526118
15      1   9909394  2072681  2072680  56.667011   53.626811  48.223207  0.526118)

我的目标是选择每个具有新索引的行[1](df [“ index”])。所以这将是df.index 0、8,依此类推...

还有另一种可能的方法,而不是遍历整个df并检查row [1](df [“ index”])上的索引变化吗?

我知道有一种方法可以像这样选择每第n行:df.iloc [0 :: n,:],但是row [1]上的索引更改(df [“ index”])并没有总是相同的顺序...

1 个答案:

答案 0 :(得分:0)

您应该能够使用诸如shift之类的方法来提取一组行。像

df[(df.column1 - df.column1.shift(1)) >= 1]

似乎可以正常工作。请注意,平移通常与您要进行比较的方向相反,因为您不是一一比较它们,而是要创建矢量的平移版本,然后立即比较整个矢量。为了使当前值和先前值对齐以进行比较,您必须将向量 forward 移到同一样本上才能获得两个值。