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')

    ///////

    基本常用的.

  • 相关阅读:
    微信小程序 单选按钮 最佳
    微信小程序 单选按钮的实现
    微信小程序 单选框实现
    Java Code To Create Pyramid and Pattern
    Java language
    npm Err! Unexpected end of JSON input while parsing near
    Node.js Express FrameWork Tutorial
    Higher-Order Function Examples
    Create First HTTP Web Server in Node.js: Complete Tutorial
    Node.js NPM Tutorial: Create, Publish, Extend & Manage
  • 原文地址:https://www.cnblogs.com/ylpb/p/10455155.html
Copyright © 2011-2022 走看看