快速瞭解Pandas

可以直接按照官網的中文文檔學習:https://www.pypandas.cn/docs/getting_started/basics.html

下面只寫出其中我覺得以後可能會用到的幾點。目前給我的感覺就像在代碼中操作關係型數據庫一樣。

1、顯示數據

pd.data_range:periods參數爲,取這個日期後的六天

pd.DataFrame:rand參數,前面一個爲行數,後面一個參數爲列數。columns參數設置列名稱

import pandas as pd
import numpy as np
dates = pd.date_range('20200317',periods=6)
# print(dates)
df = pd.DataFrame(np.random.rand(6,5),index=dates,columns=list('ABCDE'))
print(df)

輸出結果:(結果會自動格式化)

多樣化設置參數,輸出每列的參數數據類型。

import pandas as pd
import numpy as np
df2=pd.DataFrame({'A':1,
                  'B':pd.Timestamp('20200317'),
                  'C':pd.Series(1,index=list(range(5)),dtype='int32'),
                  'D': np.array([3] * 5, dtype='int32'),
                  'E':pd.Categorical(['test','aa','bb','cc','ee']),
                  'F':'foo'})
print(df2.dtypes)

輸出結果:

2、數據分頁

數據初始化到對象之後,會有一個默認的順序,由你插入數據的時候設定的。然後查詢數據時可以查看前面幾行,也可以查看最後幾行,查看中間幾行也是可以的。下面寫一個類似於limit函數一樣地使用方法。

import pandas as pd
dates = pd.date_range('20200317',periods=6)
df = pd.DataFrame(np.random.rand(6,5),index=dates,columns=list('ABCDE'))
print(df)
print(df[1:3])

輸出結果:

根據主鍵來分頁查詢,並且顯示指定字段。這種方式可以直接指定名稱,也可以指定起始位置。

import pandas as pd
dates = pd.date_range('20200317',periods=6)
df = pd.DataFrame(np.random.rand(6,5),index=dates,columns=list('ABCDE'))
print(df.loc['2020-03-19':'2020-03-21',['A','B']])
print(df.iloc[1:4,0:3])

輸出結果:

3、條件判斷

使用randn函數可以生成負數,下面來實現取列A所有大於0的數據

import numpy as np
import pandas as pd

dates = pd.date_range('20200317',periods=6)
# print(dates)
df = pd.DataFrame(np.random.randn(6,5),index=dates,columns=list('ABCDE'))
print(df)
print(df[df.A > 0])

運行結果:

4、數值查詢或者Pandas模糊匹配

可以實現一個字段模糊查詢,是否包含指定值。下面針對數據中‘E'列字段,查詢出包含字母“e”的數據。

import numpy as np
import pandas as pd
df2=pd.DataFrame({'A':1,
                  'B':pd.Timestamp('20200317'),
                  'C':pd.Series(1,index=list(range(5))),
                  'D':np.array([3] * 5),
                  'E':pd.Categorical(['test','aa','bb','cc','ee']),
                  'F':'foo'})
# print(df2.filter("E rlike '%a%").show())
print(df2)
print(df2[df2['E'].str.contains('e')])

執行結果:

5、讀取寫入文件

注意:先安裝好xlrd和openpyxl,以確保下面代碼執行不報錯。

csv1.csv文件內容:

序號,列1,列2,列3
1,a,a,b
2,b,a,b
3,c,a,b
4,a,a,b
5,b,a,b
6,c,a,b
7,a,a,b
8,b,a,b
9,c,a,b

將上面這個文件讀取,然後打印顯示

import pandas as pd
import xlrd
date = pd.read_csv('csv1.csv')
print(date)

執行結果:

還可以將數據原封不動地插入到Excel文件,然後再讀取出來。

import pandas as pd
import xlrd
date = pd.read_csv('csv1.csv')
#print(date)
date.to_excel('foo.xlsx')
date2 = pd.read_excel('foo.xlsx','Sheet1',index_col=None,na_values=['NA'])
print(date2)

輸出結果:下面這個是從foo.xlsx文件裏面讀取出來的數據。

 

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