Pandas分类总结之:基础部分

二次回顾学习Pandas记录归纳内容,参考学习内容

数据鲸的 joyful-pandas 板块

1. 文件的读写

1.1 文件读取

# 读取csv/txt/excel文件
df_csv=pd.read_csv(path)
df_txt=pd.read_table(path)
df_excel=pd.read_excel(path)
# 参数说明: 以上三个函数共用
pd.read_csv(path
            ,header=None # 第一行不作为列名
            ,index_col=['col1','col2'] # 把某一列或几列作为索引
            ,usecols=['col1','col2'] # 读取列的集合
            ,parse_dates=['col1','col2'] # 转化为时间的列
            ,nrows=x # 读取的数据行数
           )
  1. 加载数据时 各级目录间是 / 或者 \
  2. 可以通过os.getcwd()获取到该文件所在的绝对路径地址
  3. 加载数据时,可以通过 chunksize= 条件来逐块读取数据,也可以通过 nrows= 条件来读取数据的前多少行
  4. 加载csv数据默认是以’,‘分隔,加载tsv数据默认是’\t’分隔,可通过sep=’,'改变加载数据时的分隔方式
  5. 加载数据时,若数据中不含有列名那一行,要添加header=None条件,不然会将第一行数据作为列名
  6. 加载数据时,通过index_col=条件可以设置行索引,可以通过name=[]来设置行索引,通过header=0设置读取数据是不读取第一行数据
  7. 数据的观察 ; df.info() df.shape df.describe()等
  8. 数据的保存 : df.to_csv(“数据表名称”)

1.2 数据写入

df_csv.to_csv(path, index = false)
df_excel.to_excel(path, index = false)
df_csv.to_markdown() # 表格转换为markdown语言
df_csv.to_latex() # 表格转换为latex语言

to_markdown()/to_latex() 需安装tabulate包
to_table()函数,可使用to_csv()保存为txt文件


2. 基本数据结构

2.1 Series序列

series=pd.Series(date = []
                 ,index = pd.index([])
                 ,dtype = 数据结构
                 ,name = 'series_name')
# 属性可通过.方式获取
series.values
series.index
series.dtype
series.name
series.shape

2.2 DataFrame数据框

df=pd.DataFrame(date = []
                ,index = []
                ,columns = []
               )
df[col_name] # 取一列 = series
df[[col_list]] # 取多列 = DataFrame  df[['col_0', 'col_1']]
# 属性可通过.方式获取
df.values
df.index
df.columns
df.dtypes
df.shape

3. 常用基本函数

3.1 汇总函数

df.head()
df.tail()
df.info() # 信息概框
df.describe() # 数值列对应的主要统计量

3.2 特征统计函数

返回标量,公共参数axis,0逐列聚合,1逐行聚合

df.sum()/mean()/var()/std()/max()/min()
df.quantile(0.75) # 分位数
df.count() # 非缺失值个数
df.idxmax() # 最大值对应的索引

3.3 唯一值函数

df['col_name'].unique() # 唯一值组成的列表
df['col_name'].nunique() # 唯一值的个数
df['col_name'].value_counts() # 唯一值和其对应出现的频数
# 获取多个列组合的唯一值
df.drop_duplicates(['col_name1','col_name2']
                  ,keep=first # 每个组合保留第一次出现的所在行
                  # ,keep=last  # 每个组合保留最后一次出现的所在行
                  # ,keep=false # 所有重复组合所在的行剔除
                  )

duolicated()drop_duplicates()功能类似,只是返回是否为唯一值的布尔列表,keep参数与后者一致,重复元素为true,否则为false

3.4 替换函数

一般而言,替换操作是针对某一列进行的
三类替换函数:
- 映射替换:repalce() / str.replace() / cat.codes()
- 逻辑替换:where() / mask()
- 数值替换:round() / abs() / clip() # 四舍五入、取绝对值和截断

df['Gender'].replace({'Female':0,'Male':1}).head() # 字典构造替换
# 等价于
df['Gender'].replace(['Female','Male'],[0,1]).head() # 列表替换
replace([],method='ffill'/'bfill') # 用前面一个最近的未被替换的值进行替换 / 用后面最近的未被替换的值进行替换

df.where(df['colname']<60,100) # 传入条件为false对应行进行替换
df.mask(df['colname']<60,100) # 传入条件为true对应行进行替换
df.where([True,False,False,True,...]) # 传入的条件也可为与索引一致的布尔序列

df['colname'].round(2)
df['colname'].abs()
df['colname'].clip(0,2) # 前两个数分别表示上下截断边界

3.5 排序函数

两种方式:
- 值排序:sort_values()
- 索引排序:sort_index()

df.sort_values('colname',ascending=True/False) # 默认为升序
df.sort_values(['colname1','colname2'],ascending=[True,False]) # 多列排序

df.sort_index(level=['colname'],ascending=True/False) # 需要指定索引层的名字或者层号,用参数level表示
df.sort_index(level=['colname1','colname2'],ascending=[True,False]) 

3.6 apply方法

apply方法常用于DataFrame的行迭代或者列迭代,apply的参数往往是一个以序列为输入的函数
df_demo.apply(lambda x:x.mean()) # x就指代被调用的df_demo表中逐个输入的序列


4. 窗口对象

三类窗口:
- 滑动窗口:rolling()
- 扩张窗口:expanding()
- 指数加权窗口:ewm()

4.1 滑窗对象

要使用滑窗函数,就必须先要对一个序列使用.rolling得到滑窗对象,其最重要的参数为窗口大小window

s.rolling(window = 3)

# shift, diff, pct_change是一组类滑窗函数
s.shift(n) # 向前第n个元素的值
s.diff(n) # 向前第n个元素做差
s.pct_change(n) # 向前第n个元素相比计算增长率

4.2 扩张窗口

扩张窗口又称累计窗口,一个动态长度的窗,其窗口的大小就是从序列开始处到具体操作的对应位置
设序列为a1, a2, a3, a4,则其每个位置对应的窗口即[a1]、[a1, a2]、[a1, a2, a3]、[a1, a2, a3, a4]
s.expanding()
cummax, cumsum, cumprod函数是典型的类扩张窗口函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值