學習更多,歡迎關注微信公衆號:Excel辦公小技巧
“ 使用Excel進行數據分析,有些數據總要經過很多步操作實現,而在操作過程中,如果對Excel理解不深,又很難掌控。這種時候,我們唯一要做的,就是用最簡單的方式解決它。”
以下介紹會包括:數據替換(使用replace函數及條件判別)、數據切割(loc及iloc函數)
01
數據替換
1.1 簡單替換
比如,把空值替換成0,把字符a替換成字符b等諸如此類操作
pandas有replace函數,可直接使用。
import numpy as np #導入numpy
print(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)])