使用pandas實現sql中主要的方法
1.對行、列、元素增刪改查
2.數據篩選:loc函數配合條件完成
①與& 或|
②> < == >= <= !=
data1.loc[(data1['userID']!=0)&(data1['location-id']<=10000)]
比較運算符、邏輯運算符、模糊查詢、空判斷
3.分組group by
使用where完成分組
4.排序sort_values
①對某一列DataFrame排序
DataFrame.sort_values(by='location-id')
②按照多列進行排序(當第一個因素相等時,按照第二個因素排序)
df.sort_values(by=['userID','check-in-time'],ascending=[True,True])
import pandas as pd
import numpy as np
#以下實現排序功能。
series=pd.Series([3,4,1,6],index=['b','a','d','c'])
frame=pd.DataFrame([[2,4,1,5],[3,1,4,5],[5,1,4,2]],columns=['b','a','d','c'],index=['one','two','three'])
print frame
print series
print 'series通過索引進行排序:'
print series.sort_index()
print 'series通過值進行排序:'
print series.sort_values()
print 'dataframe根據行索引進行降序排序(排序時默認升序,調節ascending參數):'
print frame.sort_index(ascending=False)
print 'dataframe根據列索引進行排序:'
print frame.sort_index(axis=1)
print 'dataframe根據值進行排序:'
print frame.sort_values(by='a')
print '通過多個索引進行排序:'
print frame.sort_values(by=['a','c'])
5.獲取部分行limit star,count
6.聚合:count、max、min、avg、sum
pandas中常見統計函數
函數名 | 功能 |
---|---|
count() | 統計個數(NaN不算) |
describe() | 一次性輸出多個指標:count,mean,std,min,max |
min() max() sum() mean() | 最小最大求和平均值 |
media() | 中位數 |
var() | 方差 |
std() | 標准差 |
argmin() | 統計最小值的索引位置 |
argmax() | 統計最大值的索引位置 |
idmax() | 統計最大值的索引值 |
7.數據表的合並
merge函數
8.數據提取
loc,iloc和ix函數
二、pandas讀寫文件
1.pandas讀取txt數據
import pandas as pd
data1=pd.read_csv('Gowalla_minitestCheckins.txt', sep='\t', names=['userID','check-in-time','latitude', 'longitude', 'location-id'])
data1.to_csv('Gowalla_minitestCheckins.csv') print(data1[0:10]) #顯示前10行
# data.to_excel('240.xlsx') 將數據保存為excle格式
#data.to
sep="\t"是原始文檔間的空格每一個文檔可能都不一樣,可能有空格,逗號或者是\n,根據情況選擇names用來設置列名,如果不設置的話,則默認使用第一列作為列名。
2.
data[data['views'].isin([1])]
3 分組(統計匯總)
“group by” 指的是涵蓋下列一項或多項步驟的處理流程:
-
分割:按條件把數據分割成多組;
-
應用:為每組單獨應用函數;
-
組合:將處理結果組合成一個數據結構
data.groupby('musicID').sum()#按照音樂分組,統計每首歌的總播放量
data.groupby('musicID').count()#按照音樂分組,統計每首歌出現在數據中的總條數
三、數據表的檢查
1.數據維度
df.shape
2.數據表信息
df.info()
3.查看數據格式
df.dtypes
4.查看空值
df.isnull()
5.查看唯一值(某一列中不重復的內容)
df['city'].unique()
注意:去除dataframe中重復的內容 dataframe.drop_duplicates()
6.查看數據表數值
df.values
7.查看列名稱
df.columns
8.查看某一列(對應的series形式)
df['要查看的列名']
9.查看前10行 后10行
參考文獻
1.pandas官方文檔
https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html
2.