python pandas DataFrame 简单数据清理

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 15:48   3068   0
DataFrame的索引选项
obj[val]选取DataFrame的单个列或一组列。在某一些特殊情况下或比较便利:布尔值数组(过滤行)、切片(行切片)、
obj.ix[val]布尔型DataFrame的单个行或一组列
obj.ix[:,val]选取单个列或列子集
obj.ix[val1,val2]同时选取行和列
reindex方法将一个或多个轴匹配到新的索引
xs方法根据标签选取单行或单列、并返回一个Series
icol、irow方法根据整数位置选取单列或单行、并返回一个Series
_get_value,_set_value根据行标签或列标签选取单个值
描述和汇总统计方法
count非NA值的数量
describe针对Series或各DataFrame列计算的汇总
min、max计算最小值
argmin、argmax计算能够获得到最小值和最大值的索引位置(整数)
idxmin、idxmax计算获得最小值和最大值的索引值
quantile计算样本的分位数
sum值的总和
mean值的平均数
median值的算数中位数(50%分位数)
mad根据平均值计算平均绝对离差
var样本值的方差
std样本值的标准差
skew样本值的偏度(三阶矩)
kurt样本值的峰度
cumsum样本值的累计和
cummin、cummax样本值的累计最大值和累计最小值
cumprod样本值的累计积
diff计算一阶差分(对时间序列很有用)
pct_change计算百分数变化

简单使用其中一个方法获取股票历史数据中的最高价和最低价

def tiingo_history(id):
    headers = {
            'Content-Type': 'application/json',
            'Authorization' : 'Token dff6a6f94862a7ee9aaddb4748c3fd1739ab6bf5'
            }
    #获取股票历史信息
    requestResponse = requests.get("https://api.tiingo.com/tiingo/daily/"+id+"/prices?startDate=2018-01-02&token=dff6a6f94862a7ee9aaddb4748c3fd1739ab6bf5",headers=headers)
    # {'date': '2020-04-03T00:00:00.000Z', 'close': 241.41, 'high': 245.7, 'low': 238.9741, 'open': 242.8, 'volume': 32470017, 'adjClose': 241.41, 'adjHigh': 245.7, 'adjLow': 238.9741, 'adjOpen': 242.8,'adjVolume': 32470017, 'divCash': 0.0, 'splitFactor': 1.0}
    # '2020-04-03T00:00:00.000Z', 'close': 30.78, 'high': 31.12, 'low': 30.13, 'open': 30.6, 'volume': 70059740, 'adjClose': 30.78, 'adjHigh': 31.12, 'adjLow': 30.13, 'adjOpen': 30.6, 'adjVolume': 70059740, 'divCash': 0.0, 'splitFactor': 1.0
    #日期,该日期的收盘价,最高价,最低价,开盘价,交易股票数量,资产调整后的收盘价,资产调整后的最高价,资产调整后的开最低价,资产调整后的开盘价,资产交易的股票数量,在“日期”支付的股息(请注意,“日期”将是股息的“到期日”),公司拆分、反向拆分或支付分配时用于调整价格的因素。
    # result 是list
    result = requestResponse.json()
    return result
def get_math_info(id):
    all_data=tiingo_history(id)
    data=DataFrame(all_data)
    for i in range(len(data)):
        data._set_value(i,'date',data._get_value(i,'date')[0:10])
    # print(data)
    low =data['low']
    #获取股票每日最低价中的最小值,即历史最低值
    print(id+'历史最低值:')
    print(low.min())
    #获取股票每日最高价中的最大值,即历史最高值
    high=data['high']
    print(id+'历史值最高值:')
    print(high.max())
    #将时间date这一列指定为索引,
    data.set_index(["date"], inplace=True)
    print(data)
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP