python常见包(二)之Pandas 常用操作汇总

目录

一、读取文件:

1、from database

2、from csv/tsv

3、from excel

二、增删改查 DataFrame 

1、常用属性

​编辑

2、 访问DataFrame的数据

三、Compare DataFrames

四、其他:categorical分类变量


一、读取文件:

1、from database

import pymysql
from sqlalchemy import create_engine
conn = create_engine('mysql+pymysql://root:123456@localhost:3306/databasename?charset=utf8')  
sql = 'select * from tb_name'
df = pd.read_sql(sql=sql,con=con,index_col=True,coerce_float=True,columns=True)
# 或者:
df = pd.read_sql_table(tablename,con=con,index_col=True,coerce_float=True,columns=True)

""" sql--查询语句 ,con--数据库连接信息(地址,用户名,密码,数据库名称)
  index_col--设定的列作为行名,默认为None ,coerce_float--将数据库中的decimal的数据
  转换为pandas里的float64类型,默认为True ,columns--读取数据的列名,默认为None"""

# 将表存入mysql:
pd.io.sql.to_sql(df,tablename,con=con,if_exists='fail')
# if_exists的参数有fail(如果表存在,则不写入),
# replace(代替原来的表),append(在原来的表上追加数据)

2、from csv/tsv

        对于tsv文件,可以使用read_csv()函数,其中sep='\t'.

pd.read_table(filepath,sep='\t',header='infer',names=None,index_col=None,
              dtype=None,encoding='utf-8',nrows=None)
pd.read_csv(filepath,sep=',',header='infer',names=None,index_col=None,
            dtype=None,encoding='utf-8',nrows=None)
"""header--将某行数据作为列名,默认infer,表示自动识别.无列名则header=None 
names--接受array,自定义列名,nrows表示读取前n行,默认为None """

df.to_csv(path_or_buf,sep=',',na_rep='',columns=None,header=True,index=True,
          index_label=None,mode='w',encoding='utf-8')
""" path_or_buf--存储的路径  na_rep--代表缺失值  columns--写出的列名  header--是否将列名
  写出  mode--数据写入模式,默认‘w’  """





3、from excel

pd.read_excel(filepath,sheetname='',header='infer',names=None,index_col=None,
              dtype=None)
# sheetname--接受string,int,数据表的位置,默认0  header--将某行作为列名,默认infer
# names--接受array,自定义列名  

df.to_excel(excel_writer,sheetname='',na_rep='',header=True,index=True,
            index_label=None,mode='w',encoding='utf-8')
# excel_writer--存储文件路径  sheetname--sheet表名,默认sheet1

二、增删改查 DataFrame 

1、常用属性

df.values  # 查看所有元素
df.index   # 查看索引
df.columns # 查看所有列名
df.dtype   # 查看字段类型
df.size    # 元素总数
df.ndim    # 表的维度数
df.shape   # 返回表的行数与列数
df.info    # DataFrame的详细内容
df.T       # 表转置
# 用于生成描述性统计数据,统计数据集的集中趋势,分散和行列的分布情况,不包括 NaN值
df.describe(percentiles=None,include=None,exclude=None)

# DataFrame.isnull is an alias for DataFrame.isna.

2、 访问DataFrame的数据

# 基本查看方式
单列数据:df['col1']
单列多行:df['col1'][2:7]
多列多行:df[['col1','col2']][2:7]
多行数据:df[:][2:7]
前几行:  df.head()
后几行:  df.tail()


# loc[行索引名称或条件,列索引名称]
# iloc[行索引位置,列索引位置]

单列切片:df.loc[:,'col1']
         df.iloc[:,3]
多列切片:df.loc[:,['col1','col2']]
         df.iloc[:,[1,3]]
花式切片:df.loc[2:5,['col1','col2']]
         df.iloc[2:5,[1,3]]
条件切片:df.loc[df['col1']=='245',['col1','col2']]
         df.iloc[(df['col1']=='245').values,[1,5]]


# 增删改

df.loc[df['col1']=='258','col1']=214
# 注意:数据更改的操作无法撤销,更改前最好对条件进行确认或者备份数据

df['col2'] = 计算公式/常量

# 删除某几行数据,inplace为True时在源数据上删除,False时需要新增数据集
df.drop(labels=range(1,11),axis=0,inplace=True)
# 删除某几列数据
df.drop(labels=['col1','col2'],axis=1,inplace=True)

三、Compare DataFrames

pandas.DataFrame.gt — pandas 1.5.0 documentation

pandas.DataFrame.lt
pandas.DataFrame.gt
pandas.DataFrame.le
pandas.DataFrame.ge
pandas.DataFrame.ne
pandas.DataFrame.eq

四、其他-categorical分类变量

categorical是Pandas中的分类类型数据,当数据只有少数几种可能取值但有大量重复字符串字段,利用categorical类型可有效节省内存,提高数据分析的效率。常见的分类如性别、职业等取值有限的类别数据

import seaborn as sns
df = sns.load_dataset('titanic')
df_cat = df

 

 

 

 

参考资料:

1 pandas.DataFrame.info — pandas 1.5.2 documentation

2 pandas.DataFrame.describe方法小析 - 知乎

3 Pandas中节约空间的小tip——Categorical类型 - 知乎

4  (数据科学学习手札68)pandas中的categorical类型及应用 - 费弗里 - 博客园

Python读取excel三大常用模块到底谁最快,附上详细使用代码 - 腾讯云开发者社区-腾讯云

6 pandas DataFrame - 访问数据和遍历数据框 - 悦光阴 - 博客园

7 Pandas 读取txt|极客教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值