查看“Pandas”的源代码
←
Pandas
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
Python Data Analysis Library ==数据结构== *https://www.cnblogs.com/songxiaohua/p/9445087.html ===DataFrame=== *参见 https://blog.csdn.net/u014281392/article/details/75331570 df = pd.DataFrame([[1, 2, 3],[4, 5, 6]], columns=['col1','col2','col3'], index=['a','b']) * 表格方式定义,行是 index, 列是columns,值是values df.index df.columns df.values #二维数组 *df[0:1]调用第一行,调用列 df['col1'] *调用行 df.loc['a'],调用1到3行:df.loc[0:2](注意df[0:2]调用的是前2行,可以调用一组指定的行df.loc[sel], sel是序列的切片index *df.iloc[] :是index location,以二维矩阵的位置指标(即0,1,2……)作为参数。 :df.iloc[2,2],调用第二行,第二列 ===DataFrame和ndarray相互转换=== * ndarray转Dataframe :直接用pd.Dataframe,如 dataDf=pd.DataFrame(np.arange(12).reshape(3,4)) * Dataframe 转换为ndarray: dataDF.as_matrix()或者dataDF.values ===Series=== *每一项称为items,比较像字典,又分为index和values *默认的index是range(),所以可以从ndarray转换而来 *可以从字典装换而来,key是变成index sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000} ser3 = Series(sdata) * 不同Series对象可以根据索引进行匹配计算。 * 根据索引进行检索:ser3.loc['Ohio'] * Series.describe() #看这个序列数值的基本统计量 * 缺失值处理 Series.isnull(), Series.notnull(), Series.fillnull() ===Index=== *比较像集合set,但是元素可以重复 ==io== ===read_csv=== data=pd.read_csv('cGs_for_LAMOST.csv',comment='#') data.columns ra=data['ra'] dec=data['dec] *现在推荐read_csv 读普通表格了,默认总是把第一行做表头,如果没有表头用header=None *详见 https://blog.csdn.net/brucewong0516/article/details/79092579 :comment='#' :sep=' '(或者'\s' ;sep='\t'(分隔符是Tab键)或者delim_whitespace=True :usecols=[0,1,2] 读取指定列(这是在columns没有name的情况下) :names=["col1","col2"]指定读取进去之后columns的name ===read_table=== :读普通的ascii文件 file=pd.read_table(path+'test1.spectrum',skiprows=range(0,6),usecols=range(3),\ delim_whitespace=True, names=('A', 'B', 'C'), dtype={'A': np.int64, 'B': np.float64, 'C': np.float64}) a=file['A'].values *sep='\s+'(分隔符号是空格,多个空格也行)等价于delim_whitespace=True ===write_csv=== *例子,xmean,ymean,ystd是三个一维数组,需要输出 data={'RtoRe':xmean,'ymean':ymean,'ystd':ystd} #先生成一个字典 df=pd.DataFrame(data) df.to_csv('mydata.csv',index=False) ==hdf5== *复杂数据结构可以组合成一个hdf5结构 [https://www.cnblogs.com/feffery/p/11135082.html] *写入 store = pd.HDFStore('store.h5') #生成一个1亿行,5列的标准正态分布随机数表 df = pd.DataFrame(np.random.rand(100000000,5)) store['df'] = df ####压缩格式存储 h5 = pd.HDFStore('store_comp.h5','w', complevel=4, complib='blosc') h5['data'] = df *读入 *store = pd.HDFStore('Omet_CEM.h5') *store.keys() data=pd.read_hdf('/data/stock/test_c4.h5',key='data') *pandas 生成的h5文件,其数据块只可以是series或者DataFrame,不支持其他格式。反过来h5py生成的h5文件其value可以直接是ndarray #numpy数据直接写入H5文件 f = h5py.File('test-dev.h5','w') f['bndbox'] = h5_bndbox f['imgname'] = h5_imgname f.close() *打开h5文件出错:'Resource temporarily unavailable',一般是因为打开了文件接口没有关闭,可以强行用一下模式进行 os.environ["HDF5_USE_FILE_LOCKING"] = "FALSE" *pd.read_hdf和pd.HDFstore的效果好像不一样(碰到HDFStore生成的文件用前者读取出错) ==[[pickle]]== *使用DataFrame的to_pickle属性就可以生成pickle文件对数据进行永久储存 df = pd.DataFrame(np.arange(20).reshape(4,5)) df.to_pickle('foo.pkl') pd.read_pickle('foo.pkl')
返回至“
Pandas
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
已展开
已折叠
查看
阅读
查看源代码
查看历史
更多
已展开
已折叠
搜索
导航
首页
社群首页
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息