# 首先导入库
import pandas as pd
import numpy as np
df = D.history_data(instruments=['000300.SHA'], start_date='2016-01-01',
end_date='2016-02-01',fields=['open', 'high', 'low', 'close', 'volume', 'amount'])
df.head()
df_drop = df.dropna()
df_drop.head()
df_fillna = df.fillna(value=0)
df_fillna.head()
df_isnull = pd.isnull(df)
df_isnull.head()
df.mean()#列计算平均值
df.mean(1)#行计算平均值
df.mean(axis = 1,skipna = False) # skipna参数默认是 True 表示排除缺失值
sorted_row_df = df.sort_index()#行名字排序
sorted_row_df.head()
sorted_col_df = df.sort_index(axis=1) # 列名字排序
sorted_col_df.head()
# 数据默认是按升序排序的,也可以降序排序
df.sort_index(axis=1,ascending = False)
常用的方法如上所介绍们,还要其他许多,可自行学习,下面罗列了一些,可供参考:
count 非na值的数量
describe 针对Series或个DataFrame列计算汇总统计
min、max 计算最小值和最大值
argmin、argmax 计算能够获取到最大值和最小值得索引位置(整数)
idxmin、idxmax 计算能够获取到最大值和最小值得索引值
quantile 计算样本的分位数(0到1)
sum 值的总和
mean 值得平均数
median 值得算术中位数(50%分位数)
mad 根据平均值计算平均绝对离差
var 样本值的方差
std 样本值的标准差
skew 样本值得偏度(三阶矩)
kurt 样本值得峰度(四阶矩)
cumsum 样本值得累计和
cummin,cummax 样本值得累计最大值和累计最小值
cumprod 样本值得累计积
diff 计算一阶差分(对时间序列很有用)
pct_change 计算百分数变化
Pandas提供了大量的方法能够轻松的对Series,DataFrame和Panel对象进行各种符合各种逻辑关系的合并操作
concat 可以沿一条轴将多个对象堆叠到一起
append 将一行连接到一个DataFrame上
duplicated 移除重复数据
df1 = D.history_data(instruments=['000300.SHA'], start_date='2017-01-01', end_date='2017-01-05',
fields=['open', 'high', 'low', 'close'])
df1
df2 = D.history_data(instruments=['000300.SHA'], start_date='2017-01-06', end_date='2017-01-10',
fields=['open', 'high', 'low', 'close'])
df2
纵向拼接(默认):
pd.concat([df1, df2], axis=0)
横向拼接,index对不上的会用 NaN 填充:
pd.concat([df1, df2], axis=1)
df1
s = df1.iloc[0]
s
df1.append(s, ignore_index=False) # ignore_index=False 表示索引不变
df1.append(s, ignore_index=True) # ignore_index=True 表示索引重置
z = df1.append(s, ignore_index=False)
z
查看重复数据:
z.duplicated()
移除重复数据:
z.drop_duplicates()
z.groupby('open').sum()
z.groupby(['open','close']).sum()