代碼示例:如何查詢大熊貓多指標索引列值
In [171]: A = np.array([1.1, 1.1, 3.3, 3.3, 5.5, 6.6])
In [172]: B = np.array([111, 222, 222, 333, 333, 777])
In [173]: C = randint(10, 99, 6)
In [174]: df = pd.DataFrame(zip(A, B, C), columns=['A', 'B', 'C'])
In [175]: df.set_index(['A', 'B'], inplace=True)
In [176]: df
Out[176]:
C
A B
1.1 111 20
222 31
3.3 222 24
333 65
5.5 333 22
6.6 777 74
現在,我想檢索值:
Q1:在區間[3.3,6.6] - 預期的返回值: 3.3,5.5,6.6]或[3.3,3.5,5.6,6.6],如果不是,則爲[3.3,5.5]或[3.3,3.3,5.5]。
Q2:在範圍[2.0,4.0] - 預期的返回值:[3.3]或[3.3,3.3]
同任何其它多指標尺寸,例如B值:
Q3 :在範圍[111,500]以重複,如在範圍內的數據的行數 - 預期的返回值:[111,222,222,333,333]
更正式:
讓我們假定T是列A,B和C的表格。表格e包括n行。表單元是數字,例如A,B和C整數。讓我們創建一個表T的DataFrame,讓我們命名爲DF。讓我們設置DF的列A和B索引(沒有重複,即沒有單獨的列A和B作爲索引,並且作爲數據分開),即在這種情況下的A和B MultiIndex。
問題:
- 如何寫上的索引的查詢,例如,查詢索引A(或B),例如在標籤間隔[120.0,540.0]?標籤120.0和540.0存在。我必須澄清,我只對索引列表感興趣,作爲對查詢的迴應!
- 如何相同,但在標籤120.0和540.0不存在的情況下,但標籤的值低於120,高於120且低於540或高於540?
- 如果Q1和Q2的答案是唯一的索引值,現在與索引範圍中的數據行數相同,但具有重複性。
我知道答案,在沒有索引的列的情況下,上述的問題,但在指標的情況下,經過長期的研究在web和實驗的大熊貓功能後,我沒有成功。唯一的方法(無需額外編程)我現在看到除了索引之外,還有一個A和B的副本作爲數據列。
爲什麼不直接向我們展示您的數據框代碼?你的解釋很難理解... – sjakobi
添加的代碼@simon –
感謝您使這個問題更清晰。但我不知道如何實現你想要做的事...... – sjakobi