一、连接数据库
from sqlalchemy import create_engine
import pandas as pd
db = create_engine( 'mysql+pymysql://root:password@host:端口号' )
db = create_engine( 'mysql+pymysql://{user}:{password}@{host}:{port}'
. format ( user = 'root' ,
host = 'host' ,
password = 'password' ,
port = 端口号) )
二、读数据库数据
执行一个任意的 SQL 查询,并把结果直接读取到一个 DataFrame 中。它允许你传递一个 SQL 查询字符串,这个查询可以是任何有效的 SQL 语句,返回的结果集会被 pandas 用来创建 DataFrame。
pandas. read_sql( sql, con, index_col= None , coerce_float= True , params= None , parse_dates= None , columns= None , chunksize= None )
执行一个 SQL 查询,但它通常被用于查询的参数化。read_sql_query 允许你传递一个 SQL 查询,并且可以包含参数,这些参数随后可以通过 params 参数传递。
pandas. read_sql_query( sql, con, index_col= None , params= None , parse_dates= None , columns= None , chunksize= None )
读取一个完整的 SQL 表,并将其转换为 DataFrame。与前两者不同,read_sql_table 不需要一个 SQL 查询字符串,而是直接读取整个表的内容。
pandas. read_sql_table( table_name, con, schema= None , index_col= None , coerce_float= True , params= None , parse_dates= None , columns= None , chunksize= None )
三、set_option
pd. set_option( 'display.max_columns' , None )
pd. set_option( 'display.max_rows' , None )
pd. set_option( 'max_colwidth' , 100 )
四、to_sql
to_sql( frame, name, con, schema= None , if_exists= 'fail' , index= True , index_label= None , chunksize= None , dtype= None , method= None )
五、多个数据表merge
from functools import reduce
1 、result= [ query_mydata( data, 2 ) , query_mydata( data, 3 ) , query_mydata( data, 4 ) ]
2 、result = reduce ( lambda x, y: pd. merge( 表1 , 表2 , on= 'vin' , how= 'left' ) , result)
六、pandas条件查询
使用多个条件进行筛选:你可以结合多个条件来筛选 DataFrame 中的数据,使用 & 表示“与”,| 表示“或”。
filtered_df = df[ ( df[ 'A' ] > 2 ) & ( df[ 'B' ] . str . startswith( 'a' ) ) ]
使用 isin( ) 方法:用于筛选某列中包含特定值的行。
filtered_df = df[ df[ 'B' ] . isin( [ 'apple' , 'banana' ] ) ]
使用 query( ) 方法:通过字符串表达式查询数据,可以更灵活地编写条件。
filtered_df = df. query( 'A > 2 and B.str.startswith("a")' )
使用 loc( ) 方法:通过标签对行和列进行访问和赋值,可以更精确地选择特定行和列。
filtered_df = df. loc[ df[ 'A' ] > 2 , [ 'A' , 'B' ] ]
七、pandas数据导出
导出为 CSV 文件:
df. to_csv( 'output.csv' , index= False )
导出为 Excel 文件:
df. to_excel( 'output.xlsx' , index= False )
导出为 JSON 文件:
df. to_json( 'output.json' )
导出为 SQL 数据库:
import sqlite3
conn = sqlite3. connect( 'data.db' )
df. to_sql( 'table_name' , conn, index= False , if_exists= 'replace' )