可以直接按照官網的中文文檔學習: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文件裏面讀取出來的數據。