2016-09-28 72 views
1

所以我有10萬行的數據是這樣的熊貓據幀行數成爲同

DF

 date ticker holding 
0 2016-09-22 1 788315240 
1 2016-09-22 2 429232858 
2 2016-09-22 3 1677428346 
3 2016-09-22 4 321595332 

但是當我做:

df.loc[df.ticker == 3] 

返回

date ticker stockholding  
2 2016-09-22 3 1677428346 
2 2016-09-21 3 1679285716 
2 2016-09-20 3 1680425466 
2 2016-09-19 3 1678823216 
2 2016-09-18 3 1678743180 
2 2016-09-14 3 1682832643 

喲你可能會注意到,所有的行號變成了2,即使我做了

for i, row in df[df.ticker == 3].iterrows(): 

    print i 

它打印所有'2's。

我在做什麼錯在這裏?

回答

0

僅在index中有重複值。

您可以reset_index

df.reset_index(drop=True, inplace=True) 

樣品:

df = pd.DataFrame({'A':[1,2,3,4,5,8], 
        'B':[4,5,6,0,1,7], 
        'ticker':[7,8,9,3,3,3]}, 
        index=[0,1,2,2,2,2]) 

print (df) 
    A B ticker 
0 1 4  7 
1 2 5  8 
2 3 6  9 
2 4 0  3 
2 5 1  3 
2 8 7  3 

print (df.loc[df.ticker == 3]) 
    A B ticker 
2 4 0  3 
2 5 1  3 
2 8 7  3 

df.reset_index(drop=True, inplace=True) 

print (df.loc[df.ticker == 3]) 
    A B ticker 
3 4 0  3 
4 5 1  3 
5 8 7  3 
+0

非常感謝!有用! –

+0

如果我的回答很有幫助,請不要忘記[接受](http://meta.stackexchange.com/a/5235/295067)它。謝謝。 – jezrael