时序数据预处理

数据预处理(时序数据)

Dataframe某一列去除重复项

df = df['name'].drop_duplicates()

创建一个空的Dateframe

df = pd.DataFrame(columns=[])

Dataframe根据列值选择特定行

new_df= df.loc[df['name']=='some_value']

Dateframe根据索引排序

df = df.sort_index()

Dataframe输出显示的行or列

pd.set_option('display.max_rows', 8/None)
pd.set_option('display.max_columns', 8/None)

判断Dataframe是否为空

if df is None:

取Dataframe某列和某几列

df = df['column_name']
df = df[['column_1','column_2']]

Dataframe添加某列向上/向下1移位列并插入第1列后

df.new_column = df.column.shift(-1/1)
df.insert(1,'new_column',df.new_column)

复制dataframe

new_df= df.copy()

dataframe相加

 df = df_1.add(df_2, fill_value=0)

两个dataframe按索引外连接(索引不存在时使用缺失值)

new_df = df_1.join(df_2, how='outer')

dataframe计算每列向上累积值

df= df.cumsum()

matplotlib常规使用

fig = plt.gcf()
fig.set_size_inches(15,7)
plt.plot(date, m)
plt.title(date[0]+'~'+date[-1]+':t=' + str(t))
plt.xlabel('Date')
plt.ylabel('Return')
plt.show()

series转dataframe并指定列名

    sr =df[‘name’]
    df=sr.to_frame()
    df.columns=[‘name’]

dataframe按照某列(date)外连接

new_df = pd.merge(df_1, df_2, on='date', how='outer')

计算某列最大值最小值

n_min=df['name'].min()
n_max=df['name'].max()

dataframe改变索引,以某列为索引

df =df.set_index('date')

数字保留小数点(两位)

round(number,2)

多个dataframe纵向拼接

bull = pd.concat([bull_1,bull_2,bull_3,bull_4])

改变dataframe列明

a.columns = ['a','b','c']

计算列和并添加到列尾
计算行和并添加到行尾

df['Col_sum'] = df.apply(lambda x: x.sum(), axis=1)
df.loc['Row_sum'] = df.apply(lambda x: x.sum())

dataframe 选取行/选取列

data['w']  #选择表格中的'w'列,使用类字典属性,返回的是Series类型

data.w    #选择表格中的'w'列,使用点属性,返回的是Series类型

data[['w']]  #选择表格中的'w'列,返回的是DataFrame属性

data[['w','z']]  #选择表格中的'w'、'z'列

data[0:2]  #返回第1行到第2行的所有行,前闭后开,包括前不包括后

data[1:2]  #返回第2行,从0计,返回的是单行,通过有前后值的索引形式,
       #如果采用data[1]则报错

data.ix[1:2] #返回第2行的第三种方法,返回的是DataFrame,跟data[1:2]同

data['a':'b']  #利用index值进行切片,返回的是**前闭后闭**的DataFrame, 
        #即末端是包含的  
data.irow(0)   #取data的第一行
data.icol(0)   #取data的第一列

data.head()  #返回data的前几行数据,默认为前五行,需要前十行则dta.head(10)
data.tail()  #返回data的后几行数据,默认为后五行,需要后十行则data.tail(10)

ser.iget_value(0)  #选取ser序列中的第一个
ser.iget_value(-1) #选取ser序列中的最后一个,这种轴索引包含索引器的series不能采用ser[-1]去获取最后一个,这回引起歧义。

data.iloc[-1]   #选取DataFrame最后一行,返回的是Series
data.iloc[-1:]   #选取DataFrame最后一行,返回的是DataFrame

data.loc['a',['w','x']]   #返回‘a’行'w'、'x'列,这种用于选取行索引列索引已知

data.iat[1,1]   #选取第二行第二列,用于已知行、列位置的选取。

字典转dataframe

df=pd.DataFrame(dict,index=[0])

字典按照value的值从大到小的顺序来排序
字典按键key从小到大排序

dict= sorted(dic.items(), key=lambda d:d[1], reverse = True)
dict= sorted(dic.items(), key=lambda d:d[0]) 

dataframe滑动窗口(以当前值向上计数)
某列每3个值的和
某列每5个值的均值

df.rolling(3).sum()
df.rolling(5).mean()

numpy载入txt

b=np.loadtxt('a.txt',dtype=np.float32)

numpy保存为txt

np.savetxt('a.txt',a,fmt='%0.8f')
#第一个参数是要保存的文件名
#第二参数是要保存的array
#第三个参数是保存的数据格式,详见文档

numpy排序

np.sort()

你可能感兴趣的:(时序)