当前位置: 代码迷 >> 综合 >> python pandas DataFrame 简单数据清理
  详细解决方案

python pandas DataFrame 简单数据清理

热度:56   发布时间:2023-10-24 11:54:18.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 是listresult = 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)