pandas 初学
来源:互联网 发布:linux 局域网ip扫描 编辑:程序博客网 时间:2024/06/05 06:13
pandas 的两个数据结构, Series 和 DataFrame
Series
创建series
obj = Series([1,2,3,4,5])
Series中有index , name , values
obj.values;obj.index;m
Series 可以接受list, dict,其中dict的 key 就是 index
手动添加 index 可以通过: Serie(data, index = index)进行添加
上面的方法同时可以用来根据index手动筛选数据
查看是否为NAN: pd.isnull() ; pd.notnull()
加名字: obj.name = 'example' ; obj.index.name = 'example'
DataFrame
创建DataFrame :
DataFrame()
DataFrame(data, columns = ['example', 'example', 'example'], index = ['example', 'example', 'example'])
查看 列名: DataFrame.columns
查看单列: DataFrame.nameofcol 或者 DataFrame['colname']
查看单一行 使用 ix . Eg. frame2.ix['three'];
添加或者修改单列: frame['column'] = np.arange(5); 或者定义一个新的 Series并定义相对应的index名称
DataFrame 获取index值和表值方法和Series相似
INDEX
reindex() 可以重新根据定义的index顺序排列
reindex()可以添加新的index,并通过 定义 fill_value 的值来定义其值
对于新的值, 有两种方法 method = ‘ffill' 或者 ‘bfill’
reindex() 同时可以重新选择列 通过定义 colums =['example',example,example]
Drop entries
对于 Series, Series.drop(['inde_name'])
DataFrame: DataFrame.drop(['names'], axis = 1, 0)
axis = 0 指的是 从上往下的这个方向进行相应的运算, axis = 1 指的是 从左往右这个方向上进行运算。 一般默认为0这个方向
Index 选择 列表筛选
对于Series 很简单
对于 DataFrame, 选择前n行可以通过: dataframe[ : n]; 或者通过 ix: data.ix[ ['asdf', 'add'], [0,2,4,1]]
Series ,Data Frame之间的加减法 可以通过 简单相加 或者通过 func 进行
DataFrame 和 Series 的加减法 是以一行行的方式从上到下
通过func可以选择从那个axis 上进行运算
方程apply 和 mapping
出了使用 ufunc以外
可以使用 apply() 对一个axis进行apply 括号内的方程
对于每个element的apply, DataFrame 可以使用 applymap, Series 通过 map()
排序排列
lexicographically sorting
对于dataframe, sort_index(), 通过调试 axis 可以选择是对index 还是 column进行 排序
反序: ascending = False
对一个或多个列进行排序: sort_index(by = ['col1','col2'])
对于Series, 对其值排序 使用 Series.order()
ranking: Serise.rank(method = 'first', 'average', 'max')
Data Frame可以对不同的axis进行 rank
Index 重复值
.is_unique
简单统计
Pandas 获取数据 可以使用 import pandas.io.data
雅虎股票 信息 可以使用: data.get_data_yahoo(['tickers'], 'starting date' , 'end date')
dataframe 可以对每列数据计算 变化 使用 dataframe.pct_change()
pandas 中的 简单统计:count(), describe(), min(), max(), argmin, argmax, idmax, idmin, quantile, sum, mean, median, mad, var, std, skew, kurt, cumsum, cumin, cumax, cumprod, diff, pct_change
Corrlations and Covariance
.corr()
.cov()
如果想pairwise在dataframe 与dataframe/series之间进行对比, 可以使用 corrwith()
.unique()给出独有的数组
.value_counts()
pd.value_counts(obj.values, sort = False)
.isin(['value1', 'value2]) 查看时候否出现在列表的之中, 有利于进行筛选
使用 np.nan 作为 NA
.dropna() 除去有NAN 的行或列 (根据 axis的值)
.dropna(how = 'all'/'any')
.dropna(thresh = number) thresh为不是nan的个数
填充 NAN
.fillna() 括号内为可以替代的值; 如果传入的是一个dict, 那dict的key为要替换列的名字, value为要替换的值
可以设定 替换的个数, limit = n
Hierarchical Indexing
看着比较复杂其实挺好理解
unstack() 一个 H-indexed series , 将其变为一个DataFrame , 低级别的index转换成columns
对index和column添加名称。 frame.columns.names= ['level1', 'levle2']; frame.index.names = ['level1', 'level2']
创建一个多层index 使用 pd.MultiIndex.from_arrays([[ ], [ ]], names = [ ])
转换层 swaplevel(0, 1)
.sortlevel(0) : 排序
不同层上的统计
e.g frame.sum(level = 'level2')
通过定义 axis 设定方向
可以通过 set_index(), 用表内的列作为index, 如果传入多个列, 第一个为 level 0 第二个为level 1 以此类推
reset_index() 充值index 为 0 - n, 之前的index变为列
PANEL 可以看作为一个三维的DATAFRAME
类似于dataframe, pd.panel()
Item axis , Major axis, Minor axis
可以使用swapaxes, 交换维度
可以使用 to_frame() 转换为一个 多层次index的Data Frame
to_panel() vice versa
- pandas 初学
- 初学pandas,处理数据集来熟悉pandas
- 初学pandas与seaborn(五)pandas…
- 初学python--pandas中MultilIndex的使用
- 初学pandas与seaborn(一)系统配…
- 初学pandas与seaborn(二)随机点…
- 初学pandas与seaborn(三)回归曲…
- 初学pandas与seaborn(四)datafra…
- 初学pandas与seaborn(六)制作散…
- 初学pandas(七)坑爹版本与resamp…
- 初学pandas(八)条件选取行的便捷…
- pandas
- pandas
- Pandas
- pandas
- pandas
- pandas
- pandas
- 家中常用药
- c++第五次作业
- 如何去掉mybatis自动生成的mapper.xml文件背景色
- 蓝桥杯 BEGIN_02 入门训练 序列求和
- Java虚拟机------JVM
- pandas 初学
- 单机spark配置
- iPhone尺寸规格
- unity 在移动平台中,文件操作路径详解
- Lifeary 6.2 使用外部JS库
- Python numpy 平方、乘方和平方根函数
- 46956977
- Linux文件系统损坏导致的数据库危机
- 【Leetcode】:116. Populating Next Right Pointers in Each Node 问题 in JAVA