美文网首页
Pandas 基础用法记录

Pandas 基础用法记录

作者: NazgulSun | 来源:发表于2022-09-12 19:11 被阅读0次

    因为时不时要做一些数据分析,和基于量化的数据验证,每次使用pandas的时候都需要百度查询,
    所以把一些常用的tips记录下来,备忘

    基于条件操作某些行列
    • 例如某个值<0 则设置为0 data['influence']=data['influence'].map(lambda x: x if x >0 else 0)
    • 获取特定条件的列,df[df['ticker']==tk],ticker==tk 的列
    合并或者join
    • 使用 join 的话,比如 基于 ticker 来join,新的dataframe 会有两个 ticker_left, ticker_right; 需要自己做命名区分;
    • 使用merge 的话,ticker 只有一个,更加实用;merged = pd.merge(graph_fs,market_pd,on='ticker',how='inner')
    删除行列、转置
    • 删除p1.drop(columns=['product','Unnamed: 0'],inplace = True)
    • 以某列的统计值,新增一行或者一列;fs['min']=fs.min(axis=1)
    • 重新设置列名,fs.columns=['p','v','p_v']
    • 行列转置, fs=p1.T; T 为转置
    构建dataframe
    • 从csv 文件,read_csv, 可以指定 data_type
    • 从二维数组,pd.DataFrame(np.array(all_res),columns=clos)
    • 取一个dataframe 部分列 df= df[[columns]]
    求跨期的同环比
    • 比如,三天后减去当前,通常使用shift;idx_df['closeIndex'].shift(-window) / idx_df['closeIndex'] - 1.0
    python 的list 的表达式写法
    • return [ x for x in cols if x not in filterOut] ,for 循环里面直接写条件
    对 dict 按照值排序
    • s_res = sorted(res.items(), key=lambda x: x[1], reverse=True)

    loc 的用法

    • 随机取1000条,news.iloc[random.sample(range(news.shape[0]), k=1000), :], 其中 pd.loc[[list1],[list2]], list1 可以指定 行的idx,list2 可以指定 列, 这里 使用 分片[:],表示所有的列。
    • 选取 某列的值不再一个list中的所有数据,blackBoxSamples.loc[~blackBoxSamples.NEWS_ID.isin(remove_news_id), :]
      使用bool的类型。

    dataframe 排序

    • 按照某一列排序 not_recall.sort_values(by="theme_name" , inplace=True, ascending=True)

    相关文章

      网友评论

          本文标题:Pandas 基础用法记录

          本文链接:https://www.haomeiwen.com/subject/epgqortx.html