Pandas基础知识入门基础知识入门
Pandas是基于Numpy构建的含有更高级数据结构和工具的数据分析包。类似于Numpy的核心是ndarray,pandas 也是围绕着 Series 和 DataFrame两个核心数据结构展开的。Series
和 DataFrame 分别对应于一维的序列和二维的表结构。
Pandas官方教程User Guide ,查看当前版本:
>>> import pandas as pd
>>> import numpy as np
>>> print(pd.__version__)
1.0.1
文件读取与写入文件读取与写入
1、文件读取、文件读取
>>> df = pd.read_csv('data/table.csv') # csv格式
>>> df_txt = pd.read_table('data/table.txt') # txt格式
>>> df_excel = pd.read_excel('data/table.xlsx') #xls或xlsx格式,需要安装xlrd包
2、写入文件、写入文件
>>> df.to_csv('data/new_table.csv') # csv格式
>>> df.to_csv('data/new_table.csv', index=False) # 保存时除去行索引
>>> df.to_excel('data/new_table2.xlsx', sheet_name='Sheet1') # xls或xlsx格式,需要安装openpyxl
基本数据结构基本数据结构
1、、Series
一种类似于一维数组的对象,是由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即索引)组成。仅由一组数据也可产生简单的Series对象。注意:Series中的索引值是
可以重复的。
A. 创建创建Series
对于一个Series,其中最常用的属性为值(values),索引(index),名字(name),类型(dtype)。
>>> s = pd.Series(np.random.randn(5),index=['a','b','c','d','e'],name='Series Sample',dtype='float64')
>>> print(s)
a -0.509401
b -0.684058
c -0.759703
d 0.089692
e -0.114861
Name: Series Sample, dtype: float64
B. 访问访问Series属性属性
>>> s.values
array([-0.50940132, -0.68405815, -0.75970341, 0.08969204, -0.11486061])
>>> s.index
Index(['a', 'b', 'c', 'd', 'e'], dtype='object')
>>> s.name
'Series Sample'
>>> s.dtype
dtype('float64')
C. 索引元素索引元素
>>> s['a'] -0.5094013170899359
D. 调用方法调用方法
Series有相当多的方法可以调用:
>>> print([attr for attr in dir(s) if not attr.startswith('_')])
['T', 'a', 'abs', 'add', 'add_prefix', 'add_suffix', 'agg', 'aggregate', 'align', 'all', 'any', 'append', 'apply', 'argmax', 'argmin', 'argsort', 'array', 'asfreq', 'asof', 'astype', 'at', 'at_time', 'attrs', 'autocorr', 'axes', 'b', 'between',
'between_time', 'bfill', 'bool', 'c', 'clip', 'combine', 'combine_first', 'convert_dtypes', 'copy', 'corr', 'count', 'cov', 'cummax', 'cummin', 'cumprod', 'cumsum', 'd', 'describe', 'diff', 'div', 'divide', 'divmod', 'dot', 'drop', 'drop_duplicates',
'droplevel', 'dropna', 'dtype', 'dtypes', 'duplicated', 'e', 'empty', 'eq', 'equals', 'ewm', 'expanding', 'explode', 'factorize', 'ffill', 'fillna', 'filter', 'first', 'first_valid_index', 'floordiv', 'ge', 'get', 'groupby', 'gt', 'hasnans', 'head', 'hist', 'iat',
'idxmax', 'idxmin', 'iloc', 'index', 'infer_objects', 'interpolate', 'is_monotonic', 'is_monotonic_decreasing', 'is_monotonic_increasing', 'is_unique', 'isin', 'isna', 'isnull', 'item', 'items', 'iteritems', 'keys', 'kurt', 'kurtosis', 'last',
'last_valid_index', 'le', 'loc', 'lt', 'mad', 'map', 'mask', 'max', 'mean', 'median', 'memory_usage', 'min', 'mod', 'mode', 'mul', 'multiply', 'name', 'nbytes', 'ndim', 'ne', 'nlargest', 'notna', 'notnull', 'nsmallest', 'nunique', 'pct_change',
'pipe', 'plot', 'pop', 'pow', 'prod', 'product', 'quantile', 'radd', 'rank', 'ravel', 'rdiv', 'rdivmod', 'reindex', 'reindex_like', 'rename', 'rename_axis', 'reorder_levels', 'repeat', 'replace', 'resample', 'reset_index', 'rfloordiv', 'rmod', 'rmul',
'rolling', 'round', 'rpow', 'rsub', 'rtruediv', 'sample', 'searchsorted', 'sem', 'set_axis', 'shape', 'shift', 'size', 'skew', 'slice_shift', 'sort_index', 'sort_values', 'squeeze', 'std', 'sub', 'subtract', 'sum', 'swapaxes', 'swaplevel', 'tail', 'take',
'to_clipboard', 'to_csv', 'to_dict', 'to_excel', 'to_frame', 'to_hdf', 'to_json', 'to_latex', 'to_list', 'to_markdown', 'to_numpy', 'to_period', 'to_pickle', 'to_sql', 'to_string', 'to_timestamp', 'to_xarray', 'transform', 'transpose', 'truediv',
'truncate', 'tshift', 'tz_convert', 'tz_localize', 'unique', 'unstack', 'update', 'value_counts', 'values', 'var', 'view', 'where', 'xs']
>>> s.mean()
-0.3956662892383938
2、、DataFrame
一个表格型的数据结构,包含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型等),DataFrame即有行索引也有列索引,可以被看做是由Series组成的字典。
A. 创建创建DataFrame
>>> df = pd.DataFrame({'col1':list('abcde'),'col2':range(5,10),'col3':[1.3,2.5,3.6,4.6,5.8]},
index=list('一二三四五'))
>>> df