Pandas是一个基于NumPy的开源数据分析库,提供了高效的数据结构和数据分析工具,尤其是对于表格数据的处理。
Pandas的主要数据结构是Series和DataFrame。Series是一维数组,其每个元素都带有一个索引,可以看作是一列数据;DataFrame则是二维表格,由多个Series组成,每个Series对应一列数据。Pandas还提供了一些常用的数据处理和分析函数,如数据合并、分组聚合、数据透视表、数据可视化等。
Pandas的优点有:
- 效率高:基于NumPy,使用Cython编写的算法,运行速度非常快;
- 灵活性强:支持多种数据来源和数据格式,如CSV、Excel、SQL数据库等;
- 数据处理功能强大:提供了丰富的数据处理和分析函数,能够满足各种数据处理和分析需求;
- 易于使用:提供了简洁的API和直观的数据结构,易于学习和使用。
Pandas在数据分析和处理中广泛应用,特别是在金融、统计、社会科学、自然科学等领域。例如,在金融领域中,Pandas可以用于处理和分析股票市场数据、计算投资组合收益率等;在社会科学领域中,Pandas可以用于处理和分析调查问卷数据、人口统计数据等。
总之,Pandas是一款功能强大、易于使用的数据分析库,为数据分析和处理提供了高效、灵活的解决方案。
以下是Pandas库中的所有命令及其用法:
以下是Pandas库中的所有命令及其用法:
1. 读取数据:
• pd.read_csv(filepath, sep=',', header='infer', names=None, index_col=None, dtype=None):读取CSV文件;
• pd.read_excel(filepath, sheet_name=0, header=0, names=None, index_col=None, dtype=None):读取Excel文件;
• pd.read_sql(query, conn, params=None, index_col=None, coerce_float=True, parse_dates=None, columns=None):读取SQL数据库中的数据;
• pd.read_json(filepath, orient='columns', typ='frame', dtype=True, convert_axes=True, convert_dates=True, keep_default_dates=True):读取JSON文件;
• pd.read_html(url, header=0, index_col=None, skiprows=None, attrs=None, parse_dates=False, thousands=','):读取HTML文件中的表格数据;
• pd.read_clipboard(sep='\s+', **kwargs):读取剪贴板中的数据;
• pd.read_pickle(filepath, compression='infer'):读取Pickle文件。
2. 创建DataFrame:
• pd.DataFrame(data=None, index=None, columns=None, dtype=None, copy=False):从数据和列名创建DataFrame对象;
• pd.DataFrame.from_dict(data, orient='columns', dtype=None, columns=None):从字典创建DataFrame对象;
• pd.DataFrame.from_records(data, index=None, exclude=None, columns=None, coerce_float=False, nrows=None):从记录列表创建DataFrame对象;
• pd.DataFrame.from_csv(filepath, header=0, sep=',', index_col=0, parse_dates=True, encoding=None, tupleize_cols=False, infer_datetime_format=False):从CSV文件创建DataFrame对象(已弃用)。
3. 查看数据:
• df.head(n=5):返回DataFrame的前n行;
• df.tail(n=5):返回DataFrame的后n行;
• df.info(verbose=True, buf=None, max_cols=None, memory_usage=True, null_counts=True):返回DataFrame的基本信息,如列名、数据类型、非空值数量等;
• df.describe(percentiles=None, include=None, exclude=None):返回DataFrame的统计信息,如均值、标准差、最小值、最大值等;
• df.shape:返回DataFrame的行数和列数;
• df.columns:返回DataFrame的列名;
• df.index:返回DataFrame的行索引;
• df.dtypes:返回DataFrame每列的数据类型。
4. 选择数据:
• df[col]:选择指定列的数据;
• df.loc[row_indexer, col_indexer]:通过行和列的标签选择数据;
• df.iloc[row_indexer, col_indexer]:通过行和列的索引选择数据;
• df.ix[]:根据标签或索引选择数据(已弃用);
• df.at[]:通过行和列的标签选择单个数据;
• df.iat[]:通过行和列的索引选择单个数据;
• df.filter(items=None, like=None, regex=None, axis=None):根据指定条件选择数据;
• df.where(cond, other=np.nan, inplace=False, axis=None, level=None, errors='raise', try_cast=False):根据指定条件选择数据,未选中的数据将设置为NaN。
5. 处理缺失值:
• df.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False):删除包含缺失值的行或列;
• df.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None):将缺失值替换为指定值;
• df.interpolate(method='linear', axis=0, limit=None, inplace=False, limit_direction=None, limit_area=None, downcast=None):对缺失值进行插值。
6. 数据分组和聚合:
• df.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, observed=False):按照指定列进行数据分组;
• df.agg(func=None, axis=0, *args, **kwargs):对分组后的数据进行聚合操作,如求和、均值、最大值、最小值等;
• df.transform(func, axis=0, *args, **kwargs):对分组后的数据进行转换操作,如标准化、归一化等。
7. 数据透视表:
• pd.pivot_table(data, values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All'):创建数据透视表;
• df.pivot(index=None, columns=None, values=None):对DataFrame进行数据透视。
8. 数据合并:
• pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, sort=False, copy=True):将多个DataFrame合并为一个DataFrame;
• pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True, suffixes=('_x', '_y'), copy=True, indicator=False):基于某些列将两个DataFrame合并为一个DataFrame;
• df.join(other, on=None, how='left', lsuffix='', rsuffix='', sort=False):按照索引将两个DataFrame合并为一个DataFrame。
9. 数据计算:
• df.apply(func, axis=0, raw=False, result_type=None, args=(), **kwds):对DataFrame中的每个元素应用指定的函数;
• df.mean(axis=None, skipna=None, level=None, numeric_only=None, **kwargs):求DataFrame中的均值;
• df.median(axis=None, skipna=None, level=None, numeric_only=None, **kwargs):求DataFrame中的中位数;
• df.sum(axis=None, skipna=None, level=None, numeric_only=None, min_count=0, **kwargs):求DataFrame中的总和;
• df.max(axis=None, skipna=None, level=None, numeric_only=None, **kwargs):求DataFrame中的最大值;
• df.min(axis=None, skipna=None, level=None, numeric_only=None, **kwargs):求DataFrame中的最小值;
• df.var(axis=None, skipna=None, level=None, ddof=1, numeric_only=None, **kwargs):求DataFrame中的方差;
• df.std(axis=None, skipna=None, level=None, ddof=1, numeric_only=None, **kwargs):求DataFrame中的标准差;
• df.corr(method='pearson', min_periods=1):求DataFrame中的列之间的相关系数。
10. 数据可视化:
• df.plot(kind='line', x=None, y=None, ax=None, subplots=False, sharex=None, sharey=False, layout=None, figsize=None, use_index=True, title=None, grid=None, legend=True, style=None, logx=False, logy=False, loglog=False, xticks=None, yticks=None, xlim=None, ylim=None, rot=None, fontsize=None, colormap=None, table=False, yerr=None, xerr=None, secondary_y=False, sort_columns=False, **kwargs):绘制DataFrame中的数据图表;
• df.hist(bins=10, **kwargs):绘制DataFrame中每列的直方图;
• df.plot.scatter(x, y, s=None, c=None, **kwargs):绘制DataFrame中两列数据的散点图;
• df.plot.box(by=None, **kwargs):绘制DataFrame中每列数据的箱线图。
11. 数据清洗:
• df.drop():删除指定的行或列;
• df.drop_duplicates():删除重复的数据;
• df.rename(columns):重命名列名;
• df.replace(old_value, new_value):将指定的旧值替换为新值;
• df.dropna(thresh):删除缺失值超过指定数量的行或列;
• df.fillna(method):使用指定的方法填充缺失值;
• df.replace(to_replace, value):将指定的值替换为新的值;
• df.drop_duplicates(subset):删除指定列中重复的数据。
12. 数据转换:
• df.pivot_table():创建数据透视表;
• df.stack():将列索引转换为行索引;
• df.unstack():将行索引转换为列索引;
• df.melt():将DataFrame从宽格式转换为长格式;
• df.pivot():将DataFrame从长格式转换为宽格式。
13. 数据排序:
• df.sort_values():按照指定列排序;
• df.sort_index():按照索引排序。
14. 数据分割:
• df.sample():随机抽取指定数量的数据;
• df.nlargest():返回指定列中最大的n个值;
• df.nsmallest():返回指定列中最小的n个值;
• df.cut():将数据分成指定数量的区间;
• df.qcut():将数据分成指定数量的分位数。
15. 数据合并:
• pd.concat():将多个DataFrame合并为一个DataFrame;
• pd.merge():基于某些列将两个DataFrame合并为一个DataFrame;
• df.join():按照索引将两个DataFrame合并为一个DataFrame。
16. 数据导出:
• df.to_csv(filepath):将DataFrame数据导出为CSV文件;
• df.to_excel(filepath):将DataFrame数据导出为Excel文件;
• df.to_sql(table_name, conn):将DataFrame数据导出到SQL数据库中;
• df.to_json(filepath):将DataFrame数据导出为JSON文件;
• df.to_html(filepath):将DataFrame数据导出为HTML文件。