[熊猫数据帧选择每个新索引

问题描述 投票:0回答:1

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

我的df行看起来像这样:

   6406;957;5315292;4655592;4655593;8.0243393429825;937.9932784520067;439.98174875981346;0.9872045623086934
6407;957;5656019;4655593;4655592;8.0243393429825;937.9932784520067;498.0115296921933;0.9872045623086934
6408;958;5315292;4655592;4655593;8.293055749495121;937.9932784520067;555.458218766429;0.9863392124076431
6409;958;5656019;4655593;4655592;8.293055749495121;937.9932784520067;382.5350596855778;0.9863392124076431
6410;959;5315292;4655592;4655593;7.892917732103529;937.9932784520067;635.1207934603038;0.9876176697501
6411;959;5656019;4655593;4655592;7.892917732103529;937.9932784520067;302.872484991703;0.9876176697501
6412;960;5315292;4655592;4655593;6.442045197243409;937.9932784520067;709.790081953299;0.991734360546182
6413;960;5400557;4655593;5880439;227.8499918102345;318.8003359707323;0.0;3.095042727540216e-05
6414;960;5741284;5880439;4655593;227.8499918102345;318.8003359707323;318.8003359707323;3.095042727540216e-05
6415;960;5656019;4655593;4655592;6.442045197243409;937.9932784520067;228.2031964987077;0.991734360546182
6416;961;5315292;4655592;4655593;7.616964472162175;937.9932784520067;730.0250595186358;0.9884634329153994
6417;961;5400557;4655593;5880439;207.59338383013292;318.8003359707323;0.0;0.00018064033518757518
6418;961;5741284;5880439;4655593;207.59338383013292;318.8003359707323;318.8003359707323;0.00018064033518757518
6419;961;5656019;4655593;4655592;7.616964472162175;937.9932784520067;207.96821893337096;0.9884634329153994

我的目标是选择具有新索引的每一行[1]。因此,这将是row [0]索引6406,6408、6410、6412等...

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

我知道有一种选择第n行的方法,例如:df.iloc [0 :: n,:],但row [1]上的索引更改没有始终相同的序列...

python pandas dataframe selection
1个回答
0
投票

您应该能够使用shift之类的功能来提取一组行。像

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

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

© www.soinside.com 2019 - 2024. All rights reserved.