zoukankan      html  css  js  c++  java
  • pandas常用操作方法

    • 指定列中进行字段替换
    df['tradeDate'] = df["tradeDate"].apply(lambda x: x.replace("-", ""))
    • 获取df中ticker(不)在df_halt["ticker"]的数据.
    df = df[~df["ticker"].isin(df_halt["ticker"].tolist())]
    • 获取ticker列中首字母为0,3,6的数据
    df_list = df_list[(df_list["ticker"].str.slice(0, 1) == '0') | (df_list["ticker"].str.slice(0, 1) == '3') | (df_list["ticker"].str.slice(0, 1) == '6')]
    • (列)重复值处理,subset=["ticker"]指定列,keep='first'保留第一个值,inplace=True对原集合进行修改.
    df_halt.drop_duplicates(subset=["ticker"], keep='first', inplace=True)
    • 统计非缺失值格式,axis=0列,axis=1行,
    df_count = df.count(axis=0, level=None, numeric_only=False)
    • 每列缺失值个数
    df.shape[0] - df.count()
    • 将指定列设置为单索引
    df.set_index(df["ticker"], inplace=True)
    • 将指定多列设置为复合索引
    df.set_index([df["ticker"], df["exchange_cd"]], inplace=True)
    • 重设索引变为默认的整型索引.
    df_count.reset_index(inplace=True)
    • 对列重命名
    df_count.rename(columns={0: u"实际总数", "index": u'因子名'}, inplace=True)
    • 设置列名(与原数据列数相同最佳)
    pd.columns = ['name', 'type', 'compare', 'target']
    • eval关系(运算)处理:
    #(VDIFF - VDEA) * 2.0 = VMACD
    # VOL15 - VOL5 = DAVOL
    factor_list = [str for str in r if str.isalpha() or str.isalnum()]
    factor_list = list(set(factor_list))
    exp = np.where([str.isalpha() or str.isalnum() for str in r], ["judge['%s']" % str for str in r], r)
    exp = ''.join(exp)
    exp = exp.replace('=', '-')
    exp = exp + '<1e-3'
    judge = factor_df[factor_list]
    # judge = judge.dropna()
    judge['flag'] = eval(exp)
    judge = judge[~judge['flag']]
    • 比较两列差值是否在规定范围,同时为Nan时视为True
    tag_pd["flag"] = (abs(tag_pd["LocalValue"] - tag_pd[cross_name]) <= check_tag) | (
    (tag_pd["LocalValue"].isnull().values == True) &
    (tag_pd[cross_name].isnull().values == True)
    • 剔除空数据
    fd.dropna(inplace=True)
    • join连接,how='outer'获取并集,使用Nan进行填充;'inner'获取交集; ,left/right,左右连接;   默认为left.
    cross_fd = cross_fd.join(factor_df_only, how='outer')
    • 数据集连接,how='outer'获取并集,使用Nan进行填充;'inner'获取交集; ,left/right,左右连接; 默认为 inner.

      来源"https://www.cnblogs.com/xk-bench/p/8379180.html"

    • left与right:两个不同的DataFrame
    • how:指的是合并(连接)的方式有inner(内连接),left(左外连接),right(右外连接),outer(全外连接);默认为inner
    • on : 指的是用于连接的列索引名称。必须存在右右两个DataFrame对象中,如果没有指定且其他参数也未指定则以两个DataFrame的列名交集做为连接键
    • left_on:左则DataFrame中用作连接键的列名;这个参数中左右列名不相同,但代表的含义相同时非常有用。
    • right_on:右则DataFrame中用作 连接键的列名
    • left_index:使用左则DataFrame中的行索引做为连接键
    • right_index:使用右则DataFrame中的行索引做为连接键
    • sort:默认为True,将合并的数据进行排序。在大多数情况下设置为False可以提高性能
    • suffixes:字符串值组成的元组,用于指定当左右DataFrame存在相同列名时在列名后面附加的后缀名称,默认为('_x','_y')
    • copy:默认为True,总是将数据复制到数据结构中;大多数情况下设置为False可以提高性能
    • indicator:在 0.17.0中还增加了一个显示合并数据中来源情况;如只来自己于左边(left_only)、两者(both)
    cross_fd = cross_fd.merge(factor_df_only, how='outer')
    • 设置列属性
    tag_pd['LocalValue'] = tag_pd['LocalValue'].astype('float')

    ///////

    基本常用的.

  • 相关阅读:
    swagger接口文档生成扩展
    laykefu 在线客服php代码
    常用使用工具
    指定ip访问网址
    浏览器跨域cookie问题
    查看php-fpm 或者nginx运行的用户
    nginx、Apache重写规则
    使用SnowFlake算法生成唯一ID
    关于分布式系统的数据一致性问题
    coreseek使用
  • 原文地址:https://www.cnblogs.com/ylpb/p/10455155.html
Copyright © 2011-2022 走看看