1.读取文件操作
读取文件
data = pd.read_csv(’./data/stock_day.csv’)
删除一些列,让数据更简单些,再去做后面的操作
data = data.drop([“ma5”,“ma10”,“ma20”,“v_ma5”,“v_ma10”,“v_ma20”], axis=1)
2.索引操作
2.1 直接使用行索引的方式(先行后列)
#直接使用行列索引名字的方式(先列后行)
data['open']['2018-02-27']
23.53
#不支持的操作
#错误
data['2018-02-27']['open']
#错误
data[:1, :2]
1.2 结合loc或者iloc使用索引
获取从’2018-02-27’:‘2018-02-22’,'open’的结果
# 使用loc:只能指定行列索引的名字
data.loc['2018-02-27':'2018-02-22', 'open']
2018-02-27 23.53
2018-02-26 22.80
2018-02-23 22.88
Name: open, dtype: float64
# 使用iloc可以通过索引的下标去获取
# 获取前100天数据的'open'列的结果
data.iloc[0:100, 0:2].head()
open high close low
2018-02-27 23.53 25.88 24.16 23.53
2018-02-26 22.80 23.78 23.53 22.80
2018-02-23 22.88 23.37 22.82 22.71
1.3 使用ix组合索引
ix:混合索引与切片,在pandas 1.0中已经删除这个api了(先行后列)
可以支持名称和数值索引
Warning:Starting in 0.20.0, the .ix indexer is deprecated, in favor of the more strict .iloc and .loc indexers.
获取行第1天到第4天,['open', 'close', 'high', 'low']这个四个指标的结果
# 使用ix进行下表和名称组合做引
data.ix[0:4, ['open', 'close', 'high', 'low']]
# 推荐使用loc和iloc来获取的方式
data.loc[data.index[0:4], ['open', 'close', 'high', 'low']]
data.iloc[0:4, data.columns.get_indexer(['open', 'close', 'high', 'low'])]
open close high low
2018-02-27 23.53 24.16 25.88 23.53
2018-02-26 22.80 23.53 23.78 22.80
2018-02-23 22.88 22.82 23.37 22.71
2018-02-22 22.25 22.28 22.76 22.02
用loc和iloc代替写法
# data.ix[0:3,'open':'low']
# 根据名称拿编号
data.columns.get_indexer(['open','close'])
data.iloc[0:3,data.columns.get_indexer(['open','close'])]
# data.columns.get_indexer(['open']) 方法的【】内是列表,需要将要查询的列逐个写进去,不能切片
# 根据下标拿名称
data.columns[0:4]
data.loc['2018-02-26':'2018-02-22',data.columns[0:4]]
2 赋值操作
如果赋的为单一值的话,就会将整列都赋为单一值,若想修改一列中不同的值,则需要赋上和原列同样长度的列表
用列表或者seri