Pandas/Matplotlib模块

Pandas高级

日期处理

# 需要的模块
import time
from datetime import datetime
from datetime import timedelta

# 获取当前时间
now=datetime.now()
# 获取 now 的年月日
now.date()
# 获取 now 的年月日
now.time()
# 时间戳
time.time()
# 将当前时间格式化显示
now.strftime('%Y-%m-%d %H:%M:%S %A %j')
	strftime()
	时间日期格式化符号
			%y 两位数的年份表示
			%Y 四位数的年份表示
			%m 月份
			%d 月内中的一天
			%H 24小时制小时数
			%I 12小时制小时数
			%M 分钟数
			%S 秒
			%j 年内的一天
# 字符串格式转化为日期格式
time_str= '北京时间:2020-08-08 09:10:20'
datetime.strptime(time_str,'北京时间:%Y-%m-%d %H:%M:%S')
# 日期是可以做减法的 比如:
time1=datetime(2020,8,23)
time2=datetime(2020,6,9)
time1-time2
结果返回的是:datetime.timedelta(days=75)

合并数据集

		pd.merge()
			合并两个DataFrame
			参数
				left
					要连接的左边的数据
				right
					要连接的右边的数据
				how
					连接方式(默认inner)
					'left', 'right', 'outer', 'inner'
				on
					默认按相同列名称合并,可以用on指定
					可以多列合并,on=['key1','key2']
				left_on / right_on
					没有相同的列,可以用left_on='' right_on=''
		pd.concat()
			合并两个Series
			参数
				axis:	0:横向连接
							1:纵向连接
				join:连接方式(默认:outer)
				ignore_index: (清除索引,默认不清除)
				keys:将原参与合并的数据进行标记,标记后会形成多层索引
				names:给生成的索引取个名称
		pd.combine_first()
			以左边非nan为主
			如果左边的值是nan右边不是,用右边的
			左边索引上没有的用右边
		combine()
			# 保留合并的最大值/最小值

print(df5.combine(df6,func= np.maximum ))
print(df5.combine(df6,func= np.minimum ))

重塑和轴的选择

		多重索引
			index=[
    list('aaaabbbccc'.upper()),
    [f'编号{i}' for i in range(1,11)]  
]
			index=[
    ['武器']*5+['法宝']*5,
    list('aaaabbbccc'.upper()),
    [f'编号{i}' for i in range(1,11)]
]
		stack()
			将列索引转会行索引
		unstack() 
			将行索引转为列索引
		默认将最内层的行索引转为列索引

函数映射和替换值

		unique()
			对一个Series取唯一的值
		duplicated()
			返回一个是否是重复数据的布尔虚空序列
			~:非
			在读取一次可以将重复的取出来
		value_counts()
			对值计数
		Series.drop_duplicates()
			丢掉重复值(默认保留第一个)
		DataFrame.drop_duplicates() 
			subset = [列1,列2,...]默认所有列相同丢掉
			keep='first' 保留第一个
			inplace = 'False'  不在原值
		replace()	
			替换值
				xxx.replace([-999,-1000],[666,400])
				xxx.replace({-999:666,-1000:777})

数据拆分/异常值筛选和过滤

		pd.cut
			根据区间,求数量,结合值统计 value_counts()
			x
				被分割的值
			bins
				分箱,可以是数字也可以是list-like的分箱
			right
				默认右边闭合,False左边闭合
			labels
				给区间起个名字,让值统计更直观
			retbins
				默认False, 为True,返回一个区间数组
			precision
				默认精度到小数点后三位
			include_lowest
				默认False 分割区间,默认不包含最小值,True包含
			duplicates
				重复的 默认保留重复值
			ordered
				是否排序 默认排序
		pd.qcut
			根据数量,求区间,结合值统计 value_counts()
			X
				被分割的值
			q
				可以是整数等分
			子主题 4
		np.sign()
			取每个数的符号位

读取与写入文件

		pd.read_csv()
			读取csv文件
			sep
				以什么符号分隔(默认 , )
				可以用正则表达式
			header
				读取没有明显名称的文件,不需要让首行作为列,用参数header=None
				指定行数做列名
			names
				自定义读取列名称
				给几个列,就会从最后向前读几列数据,剩下的都是index
				超出都是nan
			index_col
				给行索引设置个名字
			skiprows
				跳过某一行
			comment
				表示一个字符在这一行出现就不要
			na_values
				需要读取xxx值为nan
		pd.to_csv()
			把想存的数据直接调用 to_csv ,就能存进去
			encoding:指定编码
			import sys
			sys.stdout:预览
		to_excel
			存excel
				需要调用openpyxl模块
		read_excel
			同读取csv参数 多了个sheet_name

数据聚合与分组计算

		groupby()
			按照某个Series 进行分组,返回一个分组后的对象,可以用list()转换查看结构,可以知道分组对象的每个值,分组依据和分组结果
			参数
				by
					按哪一列分组
				axis
					按横轴还是纵轴分
			可以直接使用聚合函数 例如: sum(),mean()

分组计算/apply/透视表

		head()
			取前面几行 默认5行
		tail()
			取后面几行
		copy()
			复制数据
		apply()
			应用一个函数
		margins
			添加个人小计

Matplotlib入门

折线图

		plt.plot()
			x
				x轴坐标
			y 
				y轴坐标
			color
				折线颜色
			linewidth 
				线条宽度
			'go--'
				 颜色 点位 线条风格
			markersize
				点的大小
			marker
				点位的形状
			linestyle
				线条风格

柱形图/条形图

		plt.bar()
			x
				x轴坐标
			y 
				y轴坐标
			color
				柱的颜色
		plt.barh()
			参数和柱形图一样

直方图

		plt.hist
			rwidth
				每个柱子之间的宽度
			histtype
				设置直方图类型

饼状图

		plt.pie()
			 startangle
				起始角度
			 colors
				颜色
			labels
				设置每个扇形图名字
			shadow
				阴影
			explode
				往出拉点
				explode=(0,0,0,0.2)
			autopct='%.2f%%'
				 占整体的百分比
			labeldistance
				label距离圆心的距离
			radius
				基于默认值大的倍数

散点图

		plt.scatter()
			x
				x轴坐标
			y 
				y轴坐标
			s
				设置点大小
			c
				设置点颜色
			marker
				设置点形状
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值