一、数据读写
1.1、mysql数据读写
import pandas as pd
from sqlalchemy import create_engine
# 数据库连接字符串
conn = create_engine(
'mysql+pymysql://username:password@ip:port/database'
# mysql+pymysql://用户: 密码@url: 端口/数据库
)
# 数据准备
data = {
'id': [1, 2, 3, 4],
'name': ['zs', 'ls', 'ww', 'ml']
}
df = pd.DataFrame(data)
# 数据写入表
df.to_sql('table_name', con=conn, index=False, if_exists='replace')
# 从表中读取数据
df = pd.read_sql_table('table_name',conn)
# 使用sql语句查询数据
sql_str = """
with tab as (
select * from table_name t where t.name = 'zs'
)
select * from tab
"""
df = pd.read_sql(sql_str,conn)
1.2、csv文件读写
1.2.1、多字符分隔符读写
import pandas as pd
import numpy as np
# 数据准备
data = {
'id': [1, 2, 3, 4],
'name': ['zs', 'ls', 'ww', 'ml']
}
df = pd.DataFrame(data)
# 数据写入文件
np.savetxt('file.txt', df, delimiter='|@|', fmt='%s',encoding='utf-8')
# 从文件中读取数据,分隔符为:|@|
df = pd.read_csv('file.txt', sep='\|\@\|', quoting=3)
1.2.2、正则分隔符读写
# 文件路径
datafile = './data/housing.data'
# 文件中分隔符有的单个空格,有的多个空格
df = pd.read_csv(datafile, sep=r'\s*[ ]\s*')
二、数据类型转换
2.1、list与Series互转
# 定义list 变量 a
a = [15,13,18,6,9,30,12]
# list 转 Series
sa = pd.Series(a)
# Series 转 list
a1 = sa.to_list()
2.2、Series与DataFrame互转
# Series 转 DataFrame
# 1.使用DataFrame函数
df1 = pd.DataFrame(sa,columns=['NO.'])
# 2.使用to_frame函数
df2 = sa.to_frame(name='NO.')
# DataFrame 转 Series
sa1 = df1['NO.']
三、Series常用函数
3.1、常用聚合函数
# 定义list 变量 a
a = [15,13,18,6,9,30,12]
# list 转 Series
sa = pd.Series(a)
# 求和、总数、最大值、最小值、中位数、平均数、标准差、方差
sa.sum(),sa.count(),sa.max(),sa.min(),sa.median(),sa.mean(),sa.std(),sa.var()
3.2、聚合函数的组合使用
sa.agg(['sum', 'count', 'max','min','median','mean','std','var'])
四、DataFrame常用函数
4.1、创建DataFrame
4.1.1、列表创建
data = [
['ZS', 25, 'BeiJing'],
['LS', 22, 'ShangHai'],
['WW', 21, 'HeNan']
]
df = pd.DataFrame(data, columns=['name', 'age', 'city'])
4.1.2、列表嵌套字典创建
data = [
{'name': 'ZS', 'age': 25, 'city': 'BeiJing'},
{'name': 'LS', 'age': 22, 'city': 'ShangHai'},
{'name': 'WW', 'age': 21, 'city': 'HeNan'}
]
df = pd.DataFrame(data)
4.1.3、字典嵌套列表创建
data = {
'name' : ['ZS','LS','WW'],
'age' : [25,22,21],
'city' : ['BeiJing','ShangHai','HeNan']
}
df = pd.DataFrame(data)