Python pandas(二)- pandas基础

查看电脑上pandas的版本号为1.1.5,如果pandas的版本较低,需要进行更新

import pandas as pd
pd.__version__
# 更新 pip install --upgrade pandas

一、文件读取和写入

1.1 文件读取

最常用的文件读取语句为pd.read_csv、pd.read_table、pd.read_excel

df_csv = pd.read_csv('../data/my_csv.csv')       
df_txt = pd.read_table('../data/my_table.txt')
df_excel = pd.read_excel('../data/my_excel.xlsx')

参数说明:

  • header=None 表示第一行不作为列名,当原始数据中第一行不是属性名称时使用该语句,同时采用如下语句在读取数据后设置列名称
df_csv.columns = ['col1', 'col2', 'col3', 'col4',' col5']   # 所有列名称都要写出来,否则会报错
  • index_col 表示把某一列或几列作为索引
  • usecols 表示读取列的集合,默认读取所有的列
  • parse_dates 表示需要转化为时间的列
  • nrows 表示读取的数据行数,nrows=2表示只读取前两行数据

读取txt文件时,会遇到分隔符非空格的情况,read_table 分割参数sep,可使用户自定义分割符号,进行txt数据的读取。
my_table_special_sep.txt 文件以||||为分割,不设置参数sep的值直接读取txt文档会奇奇怪怪,所以在读取此文件时需要使用:

pd.read_table('../data/my_table_special_sep.txt', sep=' \|\|\|\| ', engine='python')  # 转义字符,指定引擎为python
1.2 数据写入

基于pandas的特殊结构,当索引为0、1、2、3……时,数据写入时一般将index设置为False

df_csv.to_csv('../data/my_csv_saved.csv', index=False)        # 也可以保存txt文件
df_excel.to_excel('../data/my_excel_saved.xlsx', index=False)

pandas中没有定义to_table函数,采用to_csv可以保存为txt文件,允许自定义分隔符,常用制表符\t分割:

df_txt.to_csv('../data/my_txt_saved.txt', sep='\t', index=False)

二、基本数据结构

两种基本的数据存储结构:

  • 存储一维values的Series
  • 存储二维values的DataFrame
    基于这两种数据结构可以进行很多的探索性分析(EDA),在拿到一份数据时,通常基于第二部分和第三部分的方法对数据进行EDA。
2.1 Series

Series一般由四个部分组成,分别是序列的值data、索引index、存储类型dtype、序列的名字name。其中,索引也可以指定索引自己的名字,默认为空。

s = pd.Series(data = [100, 'a', {'dic1':5}],
              index = pd.Index(['id1', 20, 'third'], name='my_idx'),
              dtype = 'object',
              name = 'my_name')

索引Series的一些重要属性:

s.values
s.index
s.dtype
s.name
s.shape  # 获取序列的长度
2.2 DataFrame

DataFrame 在 Series 的基础上增加了列索引,这种设计使得读取和处理数据变得很方法,以下是两种定义DataFrame的方式:

data = [[1, 'a', 1.2], [2, 'b', 2.2], [3, 'c', 3.2]]
df = pd.DataFrame(data = data,
                  index = ['row_%d'%i for i in range(3)],
                  columns=['col_0', 'col_1', 'col_2'])
df
df = pd.DataFrame(data = {'col_0': [1,2,3],
                          'col_1':list('abc'),
                          'col_2': [1.2, 2.2, 3.2]},
                  index = ['row_%d'%i for i in range(3)])
df

读取数据的几种方式:

df['col_0']
df.col_0
df[['col_0', 'col_1']]
df.iloc[:, 1]   # 切片索引
df.loc[:, 'col_0']

索引DataFrame的一些重要属性:

s.values
s.index
s.dtype
df.columns  # 获取DataFrame的列名
s.shape     # 获取DataFrame的长度

DataFrame的转置:

df.T

三、常用基本函数

读取数据:

df = pd.read_csv('../data/learn_pandas.csv')
df.columns
# 输出:Index(['School', 'Grade', 'Name', 'Gender', 'Height', 'Weight', 'Transfer',
#       'Test_Number', 'Test_Date', 'Time_Record'],
#      dtype='object')

如果数据有很多列,直接使用df.columns可能会输出不完整,看不到全部的列,可用 df.columns.tolist() 命令

3.1 汇总函数

head, tail 函数分别表示返回表或者序列的前n行和后n行,其中n默认为5:

df.head(2)    # 输出前两行
df.tail(2)    # 输出后两行
df.info()     # 查看数据的基本信息,也可以看数据的类型,以及数据中是否有缺失值
df.describe() # 对表格中的数值列进行统计描述

df.describe() 只会对数据中的数值型数据进行描述统计。

3.2 特征统计函数

最常用的是 sum, mean, median, var, std, max, min

df_demo = df[['Height', 'Weight']]   # 取出数据中的身高、体重
df_demo.mean()                       # 输出身高和体重的均值
df_demo.max()                        # 输出身高和体重的最大值
df_demo.quantile(0.75)
df_demo.count()
df_demo.idxmax()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值