python数据分析————pandas的基本功能

pandas

pandas库的数据结构Series和DataFrame的基本使用

修改数据

del关键字可以删除数据,删除数据时,必须使用名称索引
drop方法删除数据时:

  1. Series必须按照名称索引
  2. DataFrame默认删除行,columns=参数删除列
  3. drop方法默认产生新的对象
  • Series
obj = pd.Series(np.arange(5.), index=['a', 'b', 'c', 'd', 'e'])
# 修改前三个数据值为999
obj[:3] = 999
# 修改'x'索引的值为888
obj['x'] = 888
# 删除'b'索引
del obj['b']
print(obj)
# 删除'c'索引
print(obj.drop(['c']))
# 删除'a','c'索引
print(obj.drop(['c', 'a']))
# inplace参数:如果为True,执行操作并返回None
obj.drop(['x'], inplace=True)
print(obj)
  • DataFrame
dframe = pd.DataFrame(np.arange(16).reshape((4, 4)),index=['a', 'b', 'c', 'd'], columns=['A', 'B', 'C', 'D'])
# 修改列值,若不存在,添加一列
dframe['A'] = 999
dframe['X'] = [777, 888, 999, 0]
# 修改'x'索引值为111,若不存在,则添加一行
dframe.loc['x'] = 111
# 删除'B'索引的值
del dframe['B']
print(dframe)
# drop方法默认删除行
print(dframe.drop(['a', 'd']))
# 使用columns参数删除列
print(dframe.drop(columns='A'))
# 修改轴标签,默认为0(行),可以修改为1(列)
print(dframe.drop(['A', 'D'], axis=1))

算数运算

算术运算法则:

  • 算数运算根据行列索引,补齐后运算,运算默认产生浮点数
  • 补齐时缺项填充NaN(空值)
  • 二维和一维,一维和零维运算为广播运算
  • 采用+ - * /符号运算的二元运算产生新的对象
  1. Series和DataFrame间的计算
a =pd.Series([0,1,2])
b =pd.DataFrame({0:[1, 2, 3],1:[4, 5, 6],2:[7,8,9]})
a								b
0    0							   0  1  2   
1    1							0  1  4  7		
2	 2							1  2  5  8					
dtype: int64					2  3  6  9
print(a-10)		
# 一维与零维运算
0   -10
1    -9
2    -8
dtype: int64
print(b-a)		# 二维与一维运算,Series默认在1轴参与运算
   0  1  2
0  1  3  5
1  2  4  6
2  3  5  7
m=b.sub(a,axis=0)
print(m)            #在0轴参与运算
   0  1  2
0  1  4  7
1  1  4  7
2  1  4  7
  1. DataFrame和DataFrame间的计算
a =pd.DataFrame({'one': [1, 2, 3], 'two': [4, 5, 6]})
b =pd.DataFrame({'one': [1, 2, 3], 'two': [4, 5, 6], 'three':[7,8,9]})
print(a+b)

运算结果为:

# 自动补齐,缺项为空
   one  three  two
0    2    NaN    8
1    4    NaN   10
2    6    NaN   12

也可以使用函数来运算:

# fill_value参数填充未对齐的缺失值后再进行运算
d=b.add(a,fill_value=100)
   one  three  two
0    2  107.0    8
1    4  108.0   10
2    6  109.0   12
方法 运算符
add,radd +
sub,rsub -
div,rdiv /
floordiv,rfloordiv //
mul,rmul *
pow,rpow **

数据排序

p a n d a s 库 的 数 据 排 序 N a N 统 一 放 在 排 序 末 尾 \color{red}{pandas库的数据排序NaN统一放在排序末尾} pandasNaN

  • 按索引排序
.sort_index(axis=0,ascending=True)  #在指定轴上根据索引进行排序,默认升序,默认0轴

python数据分析————pandas的基本功能_第1张图片
python数据分析————pandas的基本功能_第2张图片
python数据分析————pandas的基本功能_第3张图片
python数据分析————pandas的基本功能_第4张图片

  • 按值排序
.sort_values()  #在指定轴上根据数值进行排序
Series.sort_values(axis=0,ascending=True)  #默认0轴,默认升序
DataFrame.sort_values(by,axis=0,ascending=True)  #by:axis轴上的某个索引或索引列表

python数据分析————pandas的基本功能_第5张图片

统计计算

常用统计分析函数 说明
.sum() 计算数据综合
.count() 非nan值的数量
.mean() .median() 计算数据的算数平均值,算数中位数
.var() .std() 计算数据的方差,标准差
.min() .max() 计算数据的最小值,最大值
.describe() 输出所有统计数值

python数据分析————pandas的基本功能_第6张图片
python数据分析————pandas的基本功能_第7张图片

数据载入和存储

pandas为我们提供了很多种文件类型的读写操作,其中最常用的是CSV格式
CSV格式的特点有:

  • 由任意数据的记录组成,以换行符分隔
  • 记录由字段组成,通常以逗号分隔
读写文本文件
  • 写文本文件
dframe = pd.DataFrame({'one': [1, 2, 3], 'two': [4, 5, 6]})
dframe.to_csv('test.csv')  
to_csv方法
参数 说明
path_or_buf 文件路径
sep 分隔符,默认为逗号
na_rep 如何保存NaN,默认使用空字符
index 是否存储行标签,默认True
header 是否存储列标签,默认True
  • 读文本文件
file_data = pd.read_csv('test.csv')
read_csv方法
参数 说明
filepath_or_buffer 文件路径或句柄
sep 分隔符,默认为逗号
header 指定列标签所在的行数,默认自动推断
index_col 指定行标签所在的列,默认None
names 设置新的列标签
skiprows 忽略指定的行数
读写Excel文件
dframe = pd.DataFrame({'one': [1, 2, 3], 'two': [4, 5, 6]})
# to_excel:将数据写入Excel文件
dframe.to_excel('test.xlsx')
# read_excel:读取Excel文件中的数据     sheet_name参数:指定读写的工作表
file_data = pd.read_excel('test.xlsx',sheet_name=0)
print(file_data)
读取HTML中的表格数据
import pandas as pd
import requests
html_data = requests.get('http://kaoshi.edu.sina.com.cn/college/majorlist/').content.decode('utf-8')
# read_html函数:将HTML中的表格解析为DataFrame对象
html_table_data = pd.read_html(html_data)
print(html_table_data)
0 1 2 3 4 5
0 专业名称 专业代码 专业大类 专业小类 操作
1 哲学类 0101 哲学 哲学类 开设院校 加入对比
2 哲学 010101 哲学 哲学类 开设院校 加入对比
3 逻辑学 010102 哲学 哲学类 开设院校 加入对比
4 宗教学 010103 哲学 哲学类 开设院校 加入对比
5 伦理学 010104 哲学 哲学类 开设院校 加入对比
6 经济学类 0201 经济学 经济学类 开设院校 加入对比
7 经济学 020101 经济学 经济学类 开设院校 加入对比
8 经济统计学 020102 经济学 经济学类 开设院校 加入对比
9 国民经济管理 020103 经济学 经济学类 开设院校 加入对比
10 资源与环境经济学 020104 经济学 经济学类 开设院校 加入对比
11 商务经济学 020105 经济学 经济学类 开设院校 加入对比
12 能源经济 020106 经济学 经济学类 开设院校 加入对比
13 劳动经济学 020107 经济学 经济学类 开设院校 加入对比
14 经济工程 020108 经济学 经济学类 开设院校 加入对比
15 数字经济 020109 经济学 经济学类 开设院校 加入对比
16 财政学类 0202 经济学 财政学类 开设院校 加入对比
17 财政学 020201 经济学 财政学类 开设院校 加入对比
18 税收学 020202 经济学 财政学类 开设院校 加入对比
19 金融学类 0203 经济学 金融学类 开设院校 加入对比
20 金融学 020301 经济学 金融学类 开设院校 加入对比

你可能感兴趣的:(python,数据分析,python,数据分析,numpy,索引,pandas)