数据处理常用语句2

平时工作中,因为对数据结构与算法不是很熟悉,所以有些程序算法,嵌套了多层for,效率低。而python有一些现成的方式,如并集、交集等函数。具体参照:https://blog.csdn.net/bitcarmanlee/article/details/51622263

**********************************时间序列****************************************
2018080100,2018年08月01日00时,使用pd.to_datetime()
pd.to_datetime("20180801")
Timestamp('2018-08-01 00:00:00')
后面补充4个0,即0000表示分钟:秒,则可以转换为时间序列
pd.to_datetime("20180801010000")
Timestamp('2018-08-01 01:00:00')
np.r_是按列连接两个矩阵,就是把两矩阵上下相加,要求列数相等,类似于pandas中的concat()
np.c_是按行连接两个矩阵,就是把两矩阵左右相加,要求行数相等,类似于pandas中的merge()

#利用or做判断
if one[2]['name'] == '工业大道中' or one[2]['name'] == '工业大道北':

*********************************赋值、深拷贝、浅拷贝******************************
#赋值、深拷贝、浅拷贝

赋值:b = a, 改变a,b会改变;改变b, a会改变。
深拷贝:c = copy.deepcopy(a), 改变a, c,两者都不会变
浅拷贝:d = a.copy(), 改变d,a不变,改变a中的子对象,d中子对象跟着变

import copy
s = [1, 2, 3]
a = [s, 2, 3, 5, 8, 65]
print('原列表', a)
b = a
print('赋值:', b)
c = a.copy()
print('浅拷贝:', c)
d = copy.deepcopy(a)
print('深拷贝:', d)
 
s[0] = 20
print('\n改值后:', a)
print('改值后赋值:', b)
print('改值后浅拷贝:', c)
print('改值后深拷贝:', d)

原列表 [[1, 2, 3], 2, 3, 5, 8, 65]
赋值: [[1, 2, 3], 2, 3, 5, 8, 65]
浅拷贝: [[1, 2, 3], 2, 3, 5, 8, 65]
深拷贝: [[1, 2, 3], 2, 3, 5, 8, 65]
 
改值后: [[20, 2, 3], 2, 3, 5, 8, 65]
改值后赋值: [[20, 2, 3], 2, 3, 5, 8, 65]
改值后浅拷贝: [[20, 2, 3], 2, 3, 5, 8, 65]
改值后深拷贝: [[1, 2, 3], 2, 3, 5, 8, 65]

***************************************************************************************
#np.array().tolist()
().values.tolist()

#numpy的ravel() 和 flatten()函数
功能是一致的(将多维数组降位一维)。ravel(散开,解开),flatten(变平)。
两者的区别:numpy.flatten()返回一份拷贝,对拷贝所做的修改不会影响原始矩阵,
而numpy.ravel()返回的,会影响(reflects)原始矩阵。
In [14]: x=np.array([[1,2],[3,4]])

# flatten函数和ravel函数在降维时默认是行序优先
In [15]: x.flatten()
Out[15]: array([1, 2, 3, 4])

In [17]: x.ravel()
Out[17]: array([1, 2, 3, 4])
# 传入'F'参数表示列序优先
In [18]: x.flatten('F')
Out[18]: array([1, 3, 2, 4])

ravel:对其改变,原始数据也会改变,flatten:对其改变,原始不会改变
>>> x = np.array([[1, 2], [3, 4]])
>>> x.flatten()[1] = 100
>>> x
array([[1, 2],
       [3, 4]])            
>>> x.ravel()[1] = 100
>>> x
array([[  1, 100],
       [  3,   4]])

*******************************************************************
pd.index.name = 'id'
pd.index+=1
pd.index.columns = 'date'
**************************************jupyter notebook********************
#jupyter notebook

运行python代码
%run ./two-histograms.ipynb
%load:从外部脚本中插入代码
%prun:告诉你程序中每个函数消耗的时间

%%time
%%timeit

其实可以把不同内核的代码结合到一个notebook里运行。
只需在每个单元格的起始,用Jupyter magics调用kernal的名称:
%%bash
%%HTML
%%python2
%%python3
%%ruby
%%perl

有时候不让末句的函数输出结果比较方便,比如在作图的时候,此时,只需在该函数末尾加上一个分号即可

查看文档解释
help(function())
?function()



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Great1414

整理不易,谢谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值