使用python的pandas,實現sql的功能。
python版本:python 3.7.4
pandas版本:pandas 0.25.0
首先使用pandas的dataframe方法,建立乙個df,也就是表。
df = pd.dataframe()
使用這種格式進行編碼,更加直觀。
#實現select
# 輸出1-4位的資料的total_bill和tip
print(df.loc[1:5, ['total_bill', 'tip']])
# 1-2位資料,列為1和2列
print(df.iloc[1:3, [1, 2]])
# 實現where
# select * from df where *** = female
print(df[df['***']=='female'])
print(df[df['total_bill'] > 20])
# and
df[(df['***'] == 'female') & (df['total_bill'] > 20)]
# or
df[(df['***'] == 'female') | (df['total_bill'] > 20)]
# in
df[df['total_bill'].isin([21.01, 23.68, 24.59])]
# not
df[-(df['***'] == 'male')]
df[-df['total_bill'].isin([21.01, 23.68, 24.59])]
# 對where條件篩選後只有一行的dataframe取其中某一列的值,其兩種實現方式如下:
total = df.loc[df['tip']==1.66,'name'].values[0]
print(total)
# distinct
# drop_duplicates根據某列對dataframe進行去重:
df.drop_duplicates(subset=['***'], keep='first', inplace=true)
# subset為列做distinct,預設為所有列
# keep,值選項,保留重複元素中的第乙個、最後乙個,或全部刪除;
# inplace ,預設為false,返回乙個新的dataframe;若為true,則返回去重後的原dataframe
# join
df = pd.merge(df1, df2, how='left', left_on='tip', right_on='tip')
#group by
print(df.groupby('***').agg())
#as 修改列名
# df.rename(columns=,inplace=true)
參考文章: 原創 pandas 實現vlookup功能
code language python import numpy as np import pandas as pd 引入相應的模組 pd.set option display.float format lambda x 5f x 禁止使用科學記數法 df pd.dataframe pd.read...
在pandas中使用sql
from pandasql import sqldf 查詢記憶體中的pandas資料框 pysqldf lambda q sqldf q,globals 匯入模組,自帶資料,尋找pandas資料框 from pandasql import sqldf,load meat,load births py...
Pandas 統計功能
dataframe 描述性統計和匯 計count 非na值的個數 describe 計算series和dataframe各列的匯 計集合 min max 計算最小值 最大值 argmin argmax 計算最小值與最大值所在的索引位置 整數 idxmin idxmax 計算最小值與最大值所在的索引標...