栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

pandas 和 matplotlib 的一些常规操作

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

pandas 和 matplotlib 的一些常规操作

一、pandas 1.将 str 转换成 Timestamp
new_time = pd.to_datetime('2019-01-01 00:51:00')
new_time
Our[1]: Timestamp('2019-01-01 00:51:00')

所以如果要将dataframe中的一列全转换成Timestamp类型,可以这样:

data['valid_time_gmt'] = data['valid_time_gmt'].apply(lambda x:pd.to_datetime(x))
或者
data['valid_time_gmt'] = pd.to_datetime(data['valid_time_gmt'])

此外,将字符串转换成时间戳格式之后,可以进行时间的加减操作
pd.Timedelta('1 D')
pd.Timestamp('2019-01-01 00:00:00')

2.新建一个空的Dataframe

new = pd.Dataframe(columns=['valid_time_gmt','origin_time','temp','wc','rh','vis','wspd','precip_hrly','wx_phrase'])

3. 从字典创建Dataframe
dict = {'user':['zhangsan','lisi','wangwu'],'age':['20','24','45'], 'gender':['male', 'male', 'male']}
data = pd.Dataframe(dict)
4. 调整列顺序

直接输入新的顺序即可
data = data[['age', 'gender', 'name']]

5. 调整索引从1开始

data.index = range(1, len(data)+1)

6.dataframe中增加 行/列
# 增加行可以先新建一个df,再append进去
new=pd.Dataframe({'valid_time_gmt':new_time,
                  'temp':8,
                  'wc':6,
                  'rh':93,
                  'vis':8,
                  'wspd':11,
                  'precip_total':np.NaN,
                  'precip_hrly':4.1,
                  'wx_phrase':'Heavy Rain'}, index=[len(data)]) 
data = data.append(new)

# 增加列
data['count'] = 1
7.dataframe删除 行/列
data = data.drop(0)		# 删除行,括号中为行索引
data = data.drop('precip_total', axis=1)	# 删除列,输入列名
8.筛选出该列 不为空的值

data[data['precip_total'].notnull()]
所以如果要找出为空的就应该是:data[data['precip_total'].isnull()]

9. data.iloc[1] 与 data.loc[1]

这两个都是按行取值,但iloc里接收的是行号(即从第0行数起第几行)、loc是取的索引。如果数据的索引是有序且连序的,则它俩取出的值是一样的
如果要按行取第一行,第三行,第五行,可以这样:
data.iloc[[1, 3, 5]]
如果要连续取第一到第五行可以这样:
data.iloc[1:5]

10. 删除变量 回收内存

在循环处理多个大文件的时候比较适用

import gc
del data	# 删除data变量
gc.collect()	# 回收内存
二、matplotlib

画图时用的ax其实是Axes对象,表示我们要在figure画布上新建一个图框,之后就在这个图框上画,所以如果要在一个画布上画多个图时就必须要用ax了。

以下表示第1行第1列 第1个子图
ax = plt.subplot(111)

设置标题: plt.title('Daily Data volumn')
设置轴名: plt.xlabel('Day',fontsize = 5)
设置轴位置: ax.yaxis.set_ticks_position('left')
旋转坐标值: plt.xticks(rotation=90)

设置坐标轴显隐: ax.spines['right'].set_color('none')表示将右边的轴设置为透明
移动坐标轴: ax.spines['left'].set_position(('data', -1))
'data’表示参照物,-1表示相对于参照物要移动到的位置,即相对于data开始的位置再往左移动,0表示和data开始的位置重合。所以该参数可以控制画的图与坐标轴的距离
更改坐标值依附的坐标轴: ax.yaxis.set_ticks_position('right')
这样可以使y轴坐标值显示在右边的坐标轴上

1.展示高清矢量图

可以在导入plt 后 使用魔法命令:
%config InlineBackend.figure_format = 'svg'
如果想要切换回去的话:
config InlineBackend.figure_format = 'png'
听说如下这个是用来提高图片显示分辨率的,但我用着和png没什么区别:
%config InlineBackend.figure_format = ‘retina’

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/317575.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号