使用pandas替代Excel中的繁瑣操作-條件判別和loc函數使用

學習更多,歡迎關注微信公衆號:Excel辦公小技巧   

 使用Excel進行數據分析,有些數據總要經過很多步操作實現,而在操作過程中,如果對Excel理解不深,又很難掌控。這種時候,我們唯一要做的,就是用最簡單的方式解決它。

    以下介紹會包括:數據替換(使用replace函數及條件判別)、數據切割(loc及iloc函數)

01

數據替換

1.1 簡單替換

    比如,把空值替換成0,把字符a替換成字符b等諸如此類操作

   pandas有replace函數,可直接使用。

import numpy as np #導入numpyprint(data.replace(np.nan,'0'))

    可以看到,col_c列中的空值被替換成了0。不過,如果此處先進行處理,再進行輸出,並不會得到想要的結果,因爲原來的對象data並未發生改變,而是生成了一個新的對象。

    而如果必須這麼操作,並實現替換的話,可以用replace中的參數inplace=True來完成。​​​​​​​

data.replace(np.nan,'0',inplace=True)print(data)

結果如下:

1.2 條件替換

1.2.1 將a列中小於5的數值,用B列替換

data.loc[data.col_a<5,'col_a']=data.col_b

    可以看到,col_a列中的第1~3行小於5的都被col_b列數據替換。

1.2.2 將a列中小於b列的數值,用c列替換

data.loc[data.col_a<data.col_b,'col_a']=data.col_c

1.2.3 當a列小於b列時,對當前行的部分列進行替換

    若col_a列數值小於col_b列,則col_a和col_c列的數值都要被替換成col_b列數值。

data.loc[data.col_c<data.col_e,['col_a','col_b']]=data.col_e

 

02

數據查找

    我們經常會因爲需要拿到想要的數據,而需要多次篩選數據,並保留篩選結果,那如何一次性輸出想要的數據集呢?

2.1 標籤索引

    通過loc函數行標籤選擇,逗號左側是行選擇,右側是列選擇。

2.1.1 獲取某行某列對應的值

    獲取第一列和第一行對應的值

print(data.loc['row_1','col_a'])

結果:3

2.1.2 獲取連續行、列對應的值

    獲取第1~3行和第1~2列對應的值

print(data.loc['row_1:row_3','col_a:col_b'])

結果:

2.1.3 獲取不連續行、列對應的值

    獲取第1,3行和第1,3,5列對應的值

print(data.loc[['row_1','row_3'],['col_a','col_c','col_e']])

結果:

2.2 位置索引

    通過iloc函數行位置選擇,位置爲整數索引。同樣,逗號左側是行選擇,右側是列選擇。用法基本同標籤索引,只不過比標籤較少了輸入,只需要輸入整數即可。(左閉右開)

2.1.1 獲取某行某列對應的值

    獲取第二列和第二行對應的值

print(data.loc[1,1])

結果:5

2.1.2 獲取連續行或列的值

    獲取前三行數據(索引0,1,2)

print(data.iloc[:3])

 

    獲取第三行之後的數據,也就是第四行和第五行。(索引3及以上)

print(data.iloc[3:])

 

2.3 多條件查找

    獲取a列大於5但是b列小於20的數據(注意條件加括號:因爲比較運算符優先級低於按位與&,加上括號後,提高了優先級)。

print(data[(data.col_a>5)&(data.col_b<20)])

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章