[Turn] Pandas Common Quick Reference Manual Chinese Version (2)

The most commonly used data objects in Pandas are DataFrame and Series. The format of the data frame is similar to the DataFrame in R, and both are a two-dimensional array. Series is a one-dimensional array, similar to a list. Data frame is the most commonly used data organization method and object in Pandas.

series is a one-dimensional data structure, each element has an index, which is similar to the meaning of a one-dimensional array, where the index can be a number or a string. series structure name:

A dataframe is a two-dimensional data structure. The data is stored in a table format (similar to excel) with corresponding rows and columns. Dataframe structure name:

 

1. Pandas installation and module import

The most common method is to install via Anaconda, enter the following command in the terminal or command line to install:

conda install pandas

If Anaconda is not installed, use Python's own package management tool pip to install:

pip install pandas

Module import:

import pandas as pd # 导入pandas库
print(pd.__version__) # 打印pandas版本信息

2. Import and export data

#导入
pd.read_csv(filename):从CSV文件导入数据
pd.read_table(filename):从限定分隔符的文本文件导入数据
pd.read_excel(filename):从Excel文件导入数据
pd.read_sql(query, connection_object):从SQL表/库导入数据
pd.read_json(json_string):从JSON格式的字符串导入数据
pd.read_html(url):解析URL、字符串或者HTML文件,抽取其中的tables表格
pd.read_clipboard():从你的粘贴板获取内容,并传给read_table()
pd.DataFrame(dict):从字典对象导入数据,Key是列名,Value是数据

#导出

df.to_csv(filename):导出数据到CSV文件
df.to_excel(filename):导出数据到Excel文件
df.to_sql(table_name, connection_object):导出数据到SQL表
df.to_json(filename):以Json格式导出数据到文本文件

3. View data information

# df:任意的Pandas DataFrame对象
# s:任意的Pandas Series对象

df.head(n):查看DataFrame对象的前n行,默认5行
df.tail(n):查看DataFrame对象的最后n行
df.shape():查看行数和列数
df.dtype:查看数据框每一列的数据类型
df.index:查看索引
df.columns:查看列名
df.info():查看索引、数据类型和内存信息
df.describe():显示描述性统计数据,包括集中趋势、分散趋势、形状等
s.value_counts(dropna=False):查看Series对象的唯一值和计数
df.apply(pd.Series.value_counts):查看DataFrame对象中每一列的唯一值和计数

4. Data selection and filtering

# df:任意的Pandas DataFrame对象
# s:任意的Pandas Series对象

#选取
df[col]:根据列名,并以Series的形式返回列
df[[col1, col2,...]]:以DataFrame形式返回多列
df.iloc[where]:按整数索引选取数据,选取单个行或行子集
df.iloc[:,where]:按整数索引选取数据,选取单个列或列子集
df.iloc[where_i,where_j]:按整数索引选取数据,同时选取行和列
df.loc[col]:通过轴标签选取数据,选取单个行货一组行
df.loc[:,col]:通过轴标签选取数据,选取单列或列子集
df.loc[col1,col2]:通过轴标签选取数据,同时选取行和列

#过滤
df[df['col3']==True]:单独列为基础选择符合条件的数据
df[df=='a']:以所有的列为基础选择符合条件的数据
df[(df['col2']=='a') & (df['col3']==True)]:多个筛选条件,且多个条件的逻辑为“且”,用&表示
df[(df['col2']=='a') | (df['col3']==True)]:多个筛选条件,且多个条件的逻辑为“或”,用|表示
df[df['col1'].isin([1,2])]:基于特定值的范围的数据查找
df.query('col2=="b"'):按照类似sql的规则筛选数据

5. Data processing

# df:任意的Pandas DataFrame对象
# s:任意的Pandas Series对象

df.T:转置数据框,行和列转换
df.columns = ['a','b','c']:重命名列名
pd.isnull():检查DataFrame对象中的空值,并返回一个Boolean数组
pd.notnull():检查DataFrame对象中的非空值,并返回一个Boolean数组
df.dropna():删除所有包含空值的行
df.dropna(axis=1):删除所有包含空值的列
df.dropna(axis=1,thresh=n):删除所有小于n个非空值的行
df.fillna(x):用x替换DataFrame对象中所有的空值
s.astype(float):将Series中的数据类型更改为float类型
s.replace(1,'one'):用‘one’代替所有等于1的值
s.replace([1,3],['one','three']):用'one'代替1,用'three'代替3
df.rename(columns=lambda x: x + 1):批量更改列名
df.rename(columns={'old_name': 'new_ name'}):选择性更改列名
df.set_index('column_one'):更改索引列
df.rename(index=lambda x: x + 1):批量重命名索引
df.sort_values(['col1']):按值排序,默认为正序,可通过ascending=False指定倒序排序
df.sort_index(ascending=False):按索引排序,默认为正序,可通过ascending=False指定倒序排序
df.drop_duplicates(['col']):去重重复项,通过指定列设置去重的参照

6. Data merging and matching

df1.merge(df2,on='col1',how='inner')
df1.append(df2):将df2中的行添加到df1的尾部
pd.concat([df1, df2],axis=1):将df2中的列添加到df1的尾部
df1.join(df2,on=col1,how='inner'):对df1的列和df2的列执行SQL形式的join

7. Classification and summary of data

# df:任意的Pandas DataFrame对象
# s:任意的Pandas Series对象

df.groupby(['col2'])['col1'].sum():按指定的列做分类汇总;groupby还可以配合agg,filter,transform,apply等高级函数使用
df['col3'].map(lambda x:x*2):将一个函数或匿名函数应用到Series或数据框的特定列
df.apply(pd.np.cumsum):将一个函数或匿名函数应用到Series或数据框
df.groupby(['col2']).agg({'col1':np.sum,'col3':np.mean}):一次性对多个列做聚合操作
pd.pivot_table(df,index=['col2']):以col2列为索引建立数据透视表,默认计算方式为求均值
df.count()非NaN的数量df.describe()一次性产生多个汇总统计
df.min():最小值
df.max():最大值
df.idxmax(axis=0, skipna=True):返回含有最大值的index的Series
df.idxmin(axis=0, skipna=True):返回含有最小值的index的Series
df.quantile(axis=0)计算样本的分位数
df.sum(axis=0, skipna=True, level=NaN)返回一个含有求和小计的Series
df.mean(axis=0, skipna=True, level=NaN)返回一个含有平均值的Series
df.median(axis=0, skipna=True, level=NaN)返回一个含有算术中位数的Series
df.var(axis=0, skipna=True, level=NaN)返回一个方差的Series
df.std(axis=0, skipna=True, level=NaN)返回一个标准差的Series
df.cumsum(axis=0, skipna=True, level=NaN)返回样本的累计和
df.cummin(axis=0, skipna=True, level=NaN)返回样本的累计最大值
df.cummax(axis=0, skipna=True, level=NaN)返回样本的累计最小值

Guess you like

Origin blog.csdn.net/weixin_52071682/article/details/113449260