(1)打开csv文件
import pandas as pd
df=pd.read_csv(r’data/data.csv’)
(2)dataframe index 重新排序
data=df.sort_index(axis=0,ascending=False)
(3)dataframe 按照某一列进行升序或者降序排列
data=df.sort([‘date’],ascending=True升序,False降序)
(4)dataframe 的index重新从0开始
data=data.reset_index(drop=True)
(5)画横坐标是日期的图
import matplotlib.pyplot as plt
x=data[‘date’]#日期是字符串形式
y=data[‘close price’]
plt.plot_date(x,y)
(6)求标准差
import numpy as np
np.std
(7)下取整
import math
math.floor
上取整:math.ceil
(8)希尔伯特变换
from scipy import fftpack
hx= fftpack.hilbert(price)
(9)值排序
data.order()
(10)差分
data.diff(1)#一阶差分
dataframe 删除元素
data.drop(元素位置)
(11)嵌套的array处理方法
import itertools
a = [[1,2,3],[4,5,6], [7], [8,9]]
out = list(itertools.chain.from_iterable(a))
(12)dataframe修改列名
data.columns=[‘num’,’price’]
(13)excel表导入以后有空行解决办法
import numpy as np
data= data.drop(data.loc[np.isnan(data.name.values)].index)
(15)diff用法
一.是dataframe或者series格式,直接就用data.diff()
二.是list格式,先转换成转换成list格式data=data.tolist() 然后dif=np.diff(data)
(16)dataframe中的日期type不是date格式,不能直接相加减,所以先转换成list格式
t=data.time.tolist()
date_time = datetime.datetime.strptime(str(t),’%Y-%m-%d %H:%M:%S’)
date_time=datetime.date(date_time.year,date_time.month,date_time.day)
past= date_time - datetime.timedelta(days=n*365)
(17)符号化
np.sign
(18)字典的使用
label={‘11’:’TP’,’1-1’:’FN’,’-11’:’FP’,’-1-1’:’TN’}
for i in range(len(data1)):
state=str(int(data1[i]))+str(int(data2[i]))
result.append(label[state])
(19)用plt画图的时候中文不显示的解决办法
from matplotlib.font_manager import FontProperties
font_set = FontProperties(fname=r”c:windowsontssimsun.ttc”, size=15)
plt.title(u’中文’, fontproperties=font_set)
(20)获取当前程序运行的时间
from time import time
time1=time()
time2=time()
print(time2-time1)
以上是我找到的资料,对于我这个学习Python到半吊子的人来说也是要收藏起来的。
Ⅱ Python字典排序问题
有的,你可以使用第三方库sortedcontainers,可以使用pip安装它。它由纯Python和快速C实现,能够按顺序自动维护键,而且速度非常快。下面是演示
from sortedcontainers import SortedDict
sd = SortedDict({'c': 3, 'a': 1, 'b': 2})
print(sd)
输出:
SortedDict({'a': 1, 'b': 2, 'c': 3})
Ⅲ 如何用python语言获得一个字符串的逆序字符串
1、有时候我们可能想让字符串倒序输出,下面给出几种方法
方法一:通过索引的方法
[python] view plain print?
>>> strA = "abcdegfgijlk"
>>> strA[::-1]
'kljigfgedcba'
方法二:借组列表进行翻转
[python] view plain print?
#coding=utf-8
strA = raw_input("请输入需要翻转的字符串:")
order = []
for i in strA:
order.append(i)
order.reverse() #将列表反转
print ''.join(order) #将list转换成字符串
执行结果:
[python] view plain print?
请输入需要翻转的字符串:abcdeggsdd
ddsggedcba
Ⅳ python全排列代码,求解释
defperm(l):
#定义自定义函数函数名为perm参数为l当传入参数时l等于该参数
if(len(l)<=1):
#if语句如果传入的参数l的长度小于等于1(也就是0)则运行下面代码否则跳过该if##语句
return[l]
#返回列表[l]此处为递归的终止
r=[]
#定义列表并初始化r
foriinrange(len(l)):
#for循环(c语言常这么说)迭代i的变化范围为0到l(字母L)的长度-1
s=l[:i]+l[i+1:]
#将l的前三项以及l的第i+1后的字串赋给s
p=perm(s)
#递归将s做perm的处理递归请网络
forxinp:
#迭代p列表
r.append(l[i:i+1]+x)
#将l的第i项添加进r列表
returnr
#返回r列表
函数功能:将传入perm()的字串、列表等参数进行全排列 并返回全排列后的列表
#递归不是人的思考方式…
Ⅳ python中怎么给orderdict赋值
Python中的字典对象可以以“键:值”的方式存取数据。OrderedDict是它的一个子类,实现了对字典对象中元素的排序。比如下面比较了两种方式的不同:
mport collections
print 'Regular dictionary:'
d={}
d['a']='A'
d['b']='B'
d['c']='C'
for k,v in d.items():
print k,v
print '\nOrderedDict:'
d=collections.OrderedDict()
d['a']='A'
d['b']='B'
d['c']='C'
for k,v in d.items():
print k,v
输出结果如下:
Regular dictionary:
a A
c C
b B
OrderedDict:
a A
b B
c C
可以看到,同样是保存了ABC三个元素,但是使用OrderedDict会根据放入元素的先后顺序进行排序。由于进行了排序,所以OrderedDict对象的字典对象,如果其顺序不同那么Python也会把他们当做是两个不同的对象,比如下面的代码:
import collections
print 'Regular dictionary:'
d1={}
d1['a']='A'
d1['b']='B'
d1['c']='C'
d2={}
d2['c']='C'
d2['a']='A'
d2['b']='B'
print d1==d2
print '\nOrderedDict:'
d1=collections.OrderedDict()
d1['a']='A'
d1['b']='B'
d1['c']='C'
d2=collections.OrderedDict()
d2['c']='C'
d2['a']='A'
d2['b']='B'
print d1==d2
其输出结果为:
Regular dictionary:
True
OrderedDict:
False
Ⅵ python中按文件时间顺序来排列一个文件夹下面的文件,如何实现
建立一个字典,键是文件名,键值是时间属性,
然后用内置的sorted()函数,根据字典的值进行排序,返回一个有序的列表
假设字典名字叫folder,有序列表叫order
order = sorted(folder.items(),key=lambda e:e[1],reverse=False)
key = lambda e:e[1]表示按值进行排序,也就是你需要的按时间属性排序,e[0]则是按键名进行排序
reverse=False可以省略不写,默认是升序排列,reverse=True就是降序排列了