1

我有一个关于熊猫的简单索引问题。我想做一个简单的 for 循环来遍历数字 1 到 5。我在使用 pandas 索引时遇到了问题(尽管我确信它很简单!)

我的粗略代码:

def averaged_rel_track(current_tracks, rel_values):

    current_tracks['rel_values']=rel_values
    current_tracks=current_tracks.set_index('candidate')

    #I would like this line to loop over numbers 1 to 5
    b_1= current_tracks.rel_values.loc['1']

我试过的:

for i in range(1, 6):
    b=current_tracks.rel_values.iloc[i]

for i in range (1, 6):
    b = current_tracks.rel_values[i]

for i in range (1, 6):
   b=current_tracks.rel_values['i']

以及其他各种类似的变体(包括.ix, .iloc, .loc

4

1 回答 1

2

你的第一次尝试看起来还不错;我想你可以使用:

for i in range(5):
    b = current_tracks.rel_values.iloc[i] # by standard 0-based sequence index

或者

for i in range(1, 6):
    b = current_tracks.rel_values.loc[i] # by 1-based track number

但是你可能想避免'for i in range(...)',这不是pythonic:

for b in current_tracks.rel_values.loc[1:5]: # or .iloc[:5]
    ...

请注意, .loc[1:5]包括最后一个索引值,而 .iloc 不包括。这比听起来更直观,因为 .iloc 使用标准的 Python 索引,而 .loc 支持任何类型的特定于应用程序的索引,并且在非整数情况下可能无法“增加”结束索引。

于 2013-09-27T08:33:54.947 回答