|
在pandas中怎么樣實(shí)現(xiàn)類似mysql查找語句的功能: select * from table where column_name = some_value;pandas中獲取數(shù)據(jù)的有以下幾種方法:
假設(shè)數(shù)據(jù)如下: ![]() 布爾索引該方法其實(shí)就是找出每一行中符合條件的真值(true value),如找出列A中所有值等于foo df[df['A'] == 'foo'] # 判斷等式是否成立![]() 位置索引使用iloc方法,根據(jù)索引的位置來查找數(shù)據(jù)的。這個(gè)例子需要先找出符合條件的行所在位置 ![]() 標(biāo)簽索引如何DataFrame的行列都是有標(biāo)簽的,那么使用loc方法就非常合適了。 df.set_index('A', append=True, drop=False).xs('foo', level=1) # xs方法適用于多重索引DataFrame的數(shù)據(jù)篩選# 更直觀點(diǎn)的做法df.index=df['A'] # 將A列作為DataFrame的行索引df.loc['foo', :]# 使用布爾df.loc[df['A']=='foo']![]() 使用APIpd.DataFrame.query方法在數(shù)據(jù)量大的時(shí)候,效率比常規(guī)的方法更高效。 ![]() 數(shù)據(jù)提取不止前面提到的情況,第一個(gè)答案就給出了以下幾種常見情況:1、篩選出列值等于標(biāo)量的行,用== df.loc[df['column_name'] == some_value]2、篩選出列值屬于某個(gè)范圍內(nèi)的行,用isin 3、多種條件限制時(shí)使用&,&的優(yōu)先級(jí)高于>=或<=,所以要注意括號(hào)的使用 df.loc[(df['column_name'] >= A) & (df['column_name'] <= B)]4、篩選出列值不等于某個(gè)/些值的行
|
|
|