学习目标:选股策略1:1_apply, lambda操作
学习内容:
1:导入必要的库
import pandas as pd
pd.set_option('expand_frame_repr', False) # 当列太多时不换行
2:导入数据
# 导入数据
def import_stock_data(stock_code):
"""
只导入如下字段:'交易日期', '股票代码', '开盘价', '最高价', '最低价', '收盘价', '涨跌幅'
最终输出结果按照日期排序
:param stock_code:
:return:
"""
df = pd.read_csv(stock_code + '.csv', encoding='gbk')
#print(df)
df = df[['交易日期','股票代码', '开盘价', '最高价', '最低价', '收盘价', '涨跌幅']]
df.sort_values(by=['交易日期'], inplace=True)
df['交易日期'] = pd.to_datetime(df['交易日期'])
df.reset_index(inplace=True, drop=True)
return df
3:apply与 lambda函数操作
# 读入数据
code = 'sz300001'
df = import_stock_data(code)
# 当想要进行的操作,在pandas当中,没有相应直接可用的函数的时候,可以使用apply方法
# apply的参数是函数名
# 以下定义几个简单的函数,演示apply
def f1(x):
return x + 100
# x究竟是什么?
# print x
# print type(x)
# exit()
# x就是['收盘价']这个series,对series可以进行的任何操作,在f1中都可以进行。可以进行很复杂的操作。
#对收盘价加100操作
# print df[['收盘价']].apply(f1)
# lambda函数定义方法
# 通常用于定义一些比较简单的、一行代码可以表述清楚的、一次性的函数。比较复杂就不要使用。
# 以下是几个案例
print df['收盘价'].apply(lambda x: int(x * 100))
#把sz300001变成300001SZ
print df['股票代码'].apply(lambda x: x[2:] + x[:2].upper())
# apply、lambda是较高级的应用,大家一开始不用强行使用。之后看的多了自然也就理解会用了