2016-04-21 21 views
-2

上午,什麼號碼排是「X」出現在

我有一個熊貓數據幀:

df 

    Code 
0 F5031032 
1 F5546810 
2 F117225534 
3 F17770 
4 F29157 

我希望能夠找出連續兩個代碼的坐。所以我期待的答案是:

Code  Row 
F5031032 1 
F17770  4 

感謝

+0

我想,我失去了一些東西,但它只是'DF [ '行'] = df.index + 1'? – Zero

回答

1

試試這個

codes = ["F5031032", "F5546810", "F117225534", "F17770", "F29157"] 
df = pd.DataFrame(data=codes, columns=['Code']) 
df['Row'] = df.index+1 
print df 
0

IIUC您可以使用isin的選擇值,然後拿到指標idx,如果指數不能從0啓動,使用get_indexer

print df 
     Code 
2 F5031032 
3 F5546810 
4 F117225534 
5  F17770 
6  F29157 

print df['Code'].isin(['F5031032','F17770']) 
2  True 
3 False 
4 False 
5  True 
6 False 
Name: Code, dtype: bool 

idx = df[df['Code'].isin(['F5031032','F17770'])].index 
print idx 
Int64Index([2, 5], dtype='int64') 

print df.index.get_indexer(idx) 
[0 3] 

df1 = df[df['Code'].isin(['F5031032','F17770'])].copy() 
df1['Row'] = df.index.get_indexer(idx) + 1 
print df1 
     Code Row 
2 F5031032 1 
5 F17770 4 
0

不知道,如果你正在尋找這樣的事情

In [10]: df_filter = df[df['Code'].isin(['F5031032', 'F17770'])] 

In [11]: df_filter['Row'] = df_filter.index + 1 


In [12]: df_filter 
Out[12]: 
     Code Row 
0 F5031032 1 
3 F17770 4 
相關問題