zoukankan      html  css  js  c++  java
  • 对DataFrame的再理解

    1、构造需要从字典构造

    cds={'code':["002372.XSHE","002415.XSHE","002304.XSHE","600519.XSHG","600196.XSHG"],    #代码
         'name':["伟星新材",    "海康威视",    "洋河股份",   "贵州茅台",    "复星医药"]}
    codes=pd.DataFrame(cds)
    codes=codes.set_index("code")

    如果要指定index,可以用set_index,但要注意必须再次赋值。

    2、如果先用index数组和列名构造一个骨架,也可以

    shijian=['2011','2012','2013','2014','2015','2016','2017','2018']  #年报
    fr=pd.DataFrame(index=shijian,columns=codes['name'].tolist())

    3、也可以动态添加列,直接命名赋值即可

    fr["newcol"]=0

    4、列名可以用中文,但要对齐的话,需要设置(pandas 0.2以上)

    pd.set_option('display.unicode.ambiguous_as_wide', True) #控制中文标题对齐
    pd.set_option('display.unicode.east_asian_width', True)
    pd.set_option('display.float_format', lambda x: '%.2f' % x) #小数显示格式,保留2位

    最下面是设置小数显示保留2位的。好像列标题有对齐选项,但是列没有对齐选项。https://blog.csdn.net/weekdawn/article/details/81389865

    5、DataFrame的元素定位,ix弃用了,只能用loc,iloc,at,iat。loc是切片,at是定位到元素,差不多可以通用。

    codes.loc[cd,'name'] #代码为cd的行,对应的name列
    codes.at[cd,'name']  #如果目标为单个元素,at和loc差不多
    codes.loc[codes["code"]==cd,'name'] #如果code不是index,而是普通列,可以设条件
    

    而iloc和iat的行和列参数,必须都是index

    6、一些转换

    codes.index.tolist() #把series转换为list
  • 相关阅读:
    C# 图片与Base64的相互转化
    LeetCode 303. Range Sum Query – Immutable
    LeetCode 300. Longest Increasing Subsequence
    LeetCode 292. Nim Game
    LeetCode 283. Move Zeroes
    LeetCode 279. Perfect Squares
    LeetCode 268. Missing Number
    LeetCode 264. Ugly Number II
    LeetCode 258. Add Digits
    LeetCode 257. Binary Tree Paths
  • 原文地址:https://www.cnblogs.com/jetz/p/12240967.html
Copyright © 2011-2022 走看看