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')
new = pd.Dataframe(columns=['valid_time_gmt','origin_time','temp','wc','rh','vis','wspd','precip_hrly','wx_phrase'])
3. 从字典创建Dataframedict = {'user':['zhangsan','lisi','wangwu'],'age':['20','24','45'], 'gender':['male', 'male', 'male']}
data = pd.Dataframe(dict)
4. 调整列顺序
直接输入新的顺序即可
data = data[['age', 'gender', 'name']]
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()]
这两个都是按行取值,但iloc里接收的是行号(即从第0行数起第几行)、loc是取的索引。如果数据的索引是有序且连序的,则它俩取出的值是一样的
如果要按行取第一行,第三行,第五行,可以这样:
data.iloc[[1, 3, 5]]
如果要连续取第一到第五行可以这样:
data.iloc[1:5]
在循环处理多个大文件的时候比较适用
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轴坐标值显示在右边的坐标轴上
可以在导入plt 后 使用魔法命令:
%config InlineBackend.figure_format = 'svg'
如果想要切换回去的话:
config InlineBackend.figure_format = 'png'
听说如下这个是用来提高图片显示分辨率的,但我用着和png没什么区别:
%config InlineBackend.figure_format = ‘retina’



