一、构造须要从字典构造数组
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,但要注意必须再次赋值。ide
二、若是先用index数组和列名构造一个骨架,也能够spa
shijian=['2011','2012','2013','2014','2015','2016','2017','2018'] #年报 fr=pd.DataFrame(index=shijian,columns=codes['name'].tolist())
三、也能够动态添加列,直接命名赋值便可.net
fr["newcol"]=0
四、列名能够用中文,但要对齐的话,须要设置(pandas 0.2以上)code
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位的。好像列标题有对齐选项,可是列没有对齐选项。http://www.javashuo.com/article/p-nocmsjgw-p.htmlorm
五、DataFrame的元素定位,ix弃用了,只能用loc,iloc,at,iat。loc是切片,at是定位到元素,差很少能够通用。blog
codes.loc[cd,'name'] #代码为cd的行,对应的name列 codes.at[cd,'name'] #若是目标为单个元素,at和loc差很少 codes.loc[codes["code"]==cd,'name'] #若是code不是index,而是普通列,能够设条件
而iloc和iat的行和列参数,必须都是indexunicode
六、一些转换get
codes.index.tolist() #把series转换为list