python pandas DataFrame 简单数据清理

本文介绍了如何利用Python的Pandas库对股票历史数据进行数据清理,特别是聚焦于如何提取DataFrame中的最高价和最低价,这对于数据分析和后续的数据处理至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值