2017-06-16 186 views
2

獲得一個單元格與另一個單元格相關聯的最佳方式是什麼?Python - 熊貓索引

我有標識的文章,並在下面的CSV文件(沒有數據幀):

list = ['ABC0123', 'DEF0123'] 

> Column 1 Column 2 Column 3 Column 4 
> "Date" 20170101 "Identifier" ABC
>"OpenPrice" 500  "Currency"  USD 
>"ClosePrice" 550  "foo"   bar 
> ... 
> ... 
> ... 
> "Date" 20170101 "Identifier" DEF
>"OpenPrice" 600  "Currency"  USD 
>"ClosePrice" 650  "foo"   bar 

我想要得到的收盤價爲標識,如550和650, 在解析文件,查找標識符,然後向下移動2,向左移動2。

「關閉價格」重複本身,我想獲取標識符列表的值。此外,iloc和loc僅獲取同一行中的值,那麼獲取值的最簡單方法是什麼?

+0

你必須改變格式的能力嗎?如果每種類型的數據都有一列,那麼您將有更容易的時間:日期,標識符,OpenPrice,ClosePrice,貨幣等,然後每行將是一個完整的記錄。 –

+0

首先感謝您幫助我的問題的格式,其次,不幸的是,我知道您的意思,但我正在處理髮送給我的大文件,而不是能夠控制輸出。 – bloo

回答

1

讓我們嘗試:

df.iloc[df[df['Column 4'].isin(list)].index + 2,1] 
+0

花了我一些時間來申請我的循環,調整和測試我的數據集,但是..是的!你能否提供一些解釋,說明它是如何和爲什麼起作用的,或者指導我閱讀文檔?不知道這是否是正確的https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Index.html,但不能說這有幫助。 – bloo

+0

好的...讓我們一起努力吧。 df ['Column 4']在列表中。對這兩條記錄返回true。然後,我們使用布爾索引選擇來獲取記錄,並且.index返回索引add 2到這個索引以下行。現在,使用.iloc作爲數據框的索引位置並獲取第二列。 –

+0

謝謝,我想除了索引行的思維過程之外,解決方案的本質是知道如何從那裏移動。我以前沒有嘗試'+ 2,1'。 – bloo