DATAFRAME的常见操作

DATAFRAME的常见操作

1、读取feather文件

path = 'E:\\stockData\\already'
trade=pd.read_feather(path)

①利用feather需要import feather,之前用python 2.7时,一直安装失败。后来改为python3.6安装成功,注意版本。
②文件的路径需要是 \\ 或者是 / ,不然会报错

2、dataframe的基本操作

①读取某一列

trade['date']
trade.date

②取其中几列构成一个新的dataframe

df=trade[['date','open','high','low','close']]

注意传入的参数是包含所需要的columns的列表,双中括号

df1=df[df['close']>20]

条件筛选列

③对时间格式进行处理

方案一:对时间直接取切片,缺点是对时间的格式要求较高

trade['date'].str.slice(0,10)  #trade['date']是series格式的数据

方案二:利用parse函数,可以对时间格式智能识别,例如可以将20100101转化为2010-01-01 ,方案一是无法做到的
方案二详细介绍

from dateutil.parser import parse
df1['day']=np.vectorize(lambda s:parse(s).strftime('%Y-%m-%d'))(df1['date'])

numpy.vectorize对数组的每一变量执行相同的函数

③重置索引

df2=df1.set_index('day')

④loc, iloc 和ix的区别

loc——通过行标签索引行数据,输入的必须是索引,有时需要重置索引

df.loc[1]  #表示索引的是第1行(index 是整数)
df.loc['2010-01-01']  #表示索引的是第’d’行(index 是字符)

iloc——通过行号获取行数据:参数为第几行,与索引无关
ix——为两者的结合,既可以用行数,也可以用索引,最为常用

⑥从重复的日期和时间中生成列表

day=df1['day'].drop_duplicates() #对series格式去重生成的仍为series格式
day_list=list(day)  #将series格式转化为列表
month=df1.drop_duplicates(['month'],'last')  
#对df去重,参数一个为去重的columns,另一个为排序方式,生成结果为df格式
month_list=list(month['month'])

                       date   open   high    low  close         day    month
0       2010-01-04 09:31:00  21.83  21.87  21.83  21.84  2010-01-04  2010-01
1       2010-01-04 09:32:00  21.85  21.85  21.80  21.80  2010-01-04  2010-01
2       2010-01-04 09:33:00  21.80  21.80  21.70  21.75  2010-01-04  2010-01
3       2010-01-04 09:34:00  21.73  21.75  21.72  21.75  2010-01-04  2010-01
4       2010-01-04 09:35:00  21.74  21.76  21.73  21.76  2010-01-04  2010-01
5       2010-01-04 09:36:00  21.78  21.79  21.76  21.79  2010-01-04  2010-01
6       2010-01-04 09:37:00  21.79  21.79  21.74  21.74  2010-01-04  2010-01
7       2010-01-04 09:38:00  21.74  21.74  21.69  21.70  2010-01-04  2010-01
8       2010-01-04 09:39:00  21.70  21.70  21.66  21.68  2010-01-04  2010-01
9       2010-01-04 09:40:00  21.65  21.66  21.61  21.65  2010-01-04  2010-01
10      2010-01-04 09:41:00  21.65  21.69  21.65  21.69  2010-01-04  2010-01
11      2010-01-04 09:42:00  21.69  21.70  21.69  21.70  2010-01-04  2010-01
12      2010-01-04 09:43:00  21.69  21.73  21.69  21.70  2010-01-04  2010-01
13      2010-01-04 09:44:00  21.70  21.71  21.69  21.70  2010-01-04  2010-01
['2010-01-04', '2010-01-05', '2010-01-06', '2010-01-07', '2010-01-08', '2010-01-11', '2010-01-12', '2010-01-13', '2010-01-14', '2010-01-15', '2010-01-18', '2010-01-19', '2010-01-20', '2010-01-21', '2010-01-22', '2010-01-25', '2010-01-26', '2010-01-27', '2010-01-29', '2010-02-25', '2010-02-26', '2010-03-01', '2010-03-02', '2010-03-03', '2010-03-04', '2010-03-05', '2010-03-08', '2010-03-09', '2010-03-10', '2010-03-11', '2010-03-12', '2010-03-15', '2010-03-16', '2010-03-17', '2010-03-18', '2010-03-19', '2010-03-22', '2010-03-23', '2010-03-24', '2010-03-25', '2010-03-26', '2010-03-29', '2010-03-30', '2010-03-31', '2010-04-01', '2010-04-02', '2010-04-06', '2010-04-07', '2010-04-08', '2010-04-09', '2010-04-12', '2010-04-13', '2010-04-14', '2010-04-15', '2010-04-16', '2010-04-19', '2010-04-20', '2010-04-21', '2010-04-22', '2010-04-23', '2010-04-26', '2010-04-27', '2010-04-28', '2010-04-29', '2010-04-30', '2010-05-04', '2010-05-05', '2010-05-06', '2015-12-08']
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值