如果你是一名使用python进行过数据处理的程序员,那你对Pandas必然不陌生。pandas是一个开源的第三方Python库,旨在提供快速、灵活和富有表现力的数据结构,以便能够简单、直观地处理关系型和标记型数据。它的名字来源于面板数据(Panel Data)和数据分析(data analysis)这两个名词的组合。
 Pandas最初被应用于金融量化交易领域,现在它的应用领域更加广泛,涵盖了农业、工业、交通等许多行业。它的目标是成为强大、灵活、可以支持任何编程语言的数据分析工具。Pandas提供了大量能使我们快速便捷地处理数据的函数和方法,是Python数据分析实践与实战的必备高级工具。
 此外,Pandas是基于NumPy和Matplotlib开发的,与这两个库一起构成了Python数据分析的基础工具程序包,被誉为Python数据分析“三剑客”之一。Pandas也是Python中统计计算生态系统的重要组成部分,因为它依赖于statsmodels库。
那么今天,我们就来总结一下pandas最常见的100种用法,相信你学会了这100个pandas的使用,你也是 “不会作诗也会吟”了。
1.如何使用pandas将一个列表转换为数据框?
        要将一个列表转换为Pandas数据框(DataFrame),你可以使用Pandas的DataFrame函数。以下是一个简单的示例:
import pandas as pd  # 示例列表  
list_data = [  ['Tom', 10, 'M'],  ['Nick', 15, 'F'],  ['John', 20, 'M'],  ['Peter', 25, 'M']  
]  # 将列表转换为数据框  
df = pd.DataFrame(list_data, columns=['Name', 'Age', 'Gender'])  # 显示数据框  
print(df) 在这个例子中,我们首先导入Pandas库并给它起了一个别名
        在这个例子中,我们首先导入Pandas库并给它起了一个别名pd。然后,我们定义了一个包含数据的列表。接下来,我们使用pd.DataFrame()函数将列表转换为数据框,并使用columns参数指定列的名称。最后,我们打印数据框的内容。
2. 如何从一个csv文件中读取数据到一个pandas数据框?
        要将CSV文件的数据读取到Pandas DataFrame中,你可以使用Pandas的read_csv函数。以下是一个简单的示例:
import pandas as pd  # 读取CSV文件到DataFrame  
df = pd.read_csv('filename.csv')  # 显示前5行数据  
print(df.head())        这段代码会从当前目录下的'filename.csv'文件中读取数据,并将其存储在DataFrame对象df中。然后,它会打印出这个DataFrame的前五行。read_csv函数有许多参数,可以用来调整如何读取CSV文件。例如,你可以指定分隔符,处理空值,或者读取特定的列。以下是一些常见的参数:
- sep:指定分隔符,默认为','。
- delimiter:同- sep。
- header:指定标题行,默认为0。如果CSV文件没有标题行,则设置为None。
- index_col:指定用作索引的列。
- usecols:只读取指定的列。可以是一个列名列表,或者是一个布尔数组。
- skiprows:跳过指定的行数。
- na_values:指定应被视为空值的值。
- dtype:为每个列设置数据类型。
- parse_dates:将日期列解析为日期类型。
- skipfooter:跳过CSV文件末尾的指定行数。
- encoding:指定编码方式。
3.如何通过pandas创建数据到mysql数据库?
要将Pandas数据框中的数据写入MySQL数据库,您需要使用Python的pandas和sqlalchemy库。
import pandas as pd  
from sqlalchemy import create_engine  # 创建示例数据框  
data = {  'Name': ['Tom', 'Nick', 'John', 'Peter'],  'Age': [10, 15, 20, 25],  'Gender': ['M', 'F', 'M', 'M']  
}  
df = pd.DataFrame(data)  # 创建数据库连接字符串,根据实际情况修改以下参数  
username = 'your_username'  
password = 'your_password'  
host = 'your_host'  
database = 'your_database'  
url = f"mysql+pymysql://{username}:{password}@{host}/{database}"  # 创建数据库连接引擎  
engine = create_engine(url)  # 将数据写入MySQL数据库表(如果表已存在,则替换它)  
df.to_sql('table_name', con=engine, if_exists='replace', index=False)  # 'table_name'是您要将数据写入的目标表的名称,'replace'表示如果表已存在,则替换它。df.to_sql() 函数是 pandas 库中用于将数据框(DataFrame)写入 SQL 数据库的函数。以下是该函数的一些常用参数:
- name:要写入的数据库表的名称。
- con:用于连接到数据库的连接对象。如果未提供,则函数将使用 SQLite 数据库,并将其存储在内存中。
- schema:数据库模式名称。如果未指定,则默认为 "public"。
- if_exists:如果指定的表已存在,则根据此参数的值执行相应操作。可选值有: - 'fail':抛出异常。
- 'replace':替换现有表。
- 'append':向现有表添加数据。
 
- index:是否将 DataFrame 的索引写入数据库表。默认为 True。如果设置为False,则不会将索引写入表中。
- index_label:用作索引列的标签的列名。如果提供了 index=True,则可以使用此参数为索引列指定一个特定的标签名称。
- chunksize:将数据写入数据库的分块大小。如果提供,函数将返回一个迭代器,每次迭代写入一个分块。
- dtype:用于指定列的数据类型的字典。例如,{'a': sqlalchemy.types.String}。
- method:用于将数据写入数据库的方法。默认为 None,表示使用标准 SQL 插入语句。如果设置为multi,则允许批量插入多个值行。
- sql_schema:SQL 模式的名称,与 schema参数类似,但使用 SQL 语法的模式名称。
- kwargs:其他关键字参数将被传递给 pd.io.sql.get_schema()函数来生成 SQL 创建表语句。
4.如何查看一个pandas数据框的行数和列数?
len(df)获取行数
len(df.columns)获取列数5. 如何查看一个pandas数据库的列名?
df.columns6. 如何查看一个pandas数据框的索引?
df.index7. 如何导入pandas库并查看版本号?
pd.__version__8. 如何从csv文件中读取数据并创建一个pandas数据框?
# 读取CSV文件  
df = pd.read_csv('file.csv') 
9. 如何查看一个pandas数据框的数据类型?
df.dtypes10. 如何查看一个pandas数据框的数据摘要统计信息?
# 使用describe()函数查看数据摘要统计信息
df.describe()# 特定的列描述统计
df['A'].describe()# 显示包括标准差、方差、最小值、四分位数和最大值的更详细的信息。
df.describe(include='all')11. 如何选择一个Pandas数据框的行?
选择Pandas数据框的行有多种方法,以下是一些常见的方法:
- 使用布尔索引:通过在数据框上应用条件表达式,选择符合条件的行。例如,df[df['column_name'] > value]将选择column_name列中值大于value的所有行。
- 使用iloc[]:通过行号来选择行。例如,df.iloc[0:3]将选择前3行。
- 使用loc[]:通过行标签来选择行。例如,df.loc[row_label]将选择具有指定标签的行。
- 使用布尔索引和逻辑运算符:通过组合多个条件来选择行。例如,df[(df['column1'] > value1) & (df['column2'] < value2)]将选择同时满足两个条件的行。
- 使用query()方法:通过在数据框上应用字符串表达式来选择行。例如,df.query('column_name > value')将选择column_name列中值大于value的所有行。
- 使用isin()方法:通过指定一个值列表,选择包含该列表中任意值的行。例如,df[df['column_name'].isin(value_list)]将选择column_name列中值在value_list列表中的所有行。
12. 如何选择一个Pandas数据框的列?
在Pandas中,您可以使用各种方法选择数据框(DataFrame)的列。以下是一些常用的方法:
- 通过列名选择列:使用列名作为索引来选择特定的列。
df['column_name']- 通过列的位置选择列:使用列的整数位置(从0开始)来选择列。
df.iloc[:, position]- 选择多个列:使用列名的列表来选择多个列。
df[['column1', 'column2']]- 选择列的一部分:使用布尔索引选择满足条件的列。例如,选择所有大于某个值的列。
df[df['column_name'] > value]- 选择所有列:要选择所有列,可以使用以下方法。
df.all()  # 对于所有True的情况返回True,否则返回False。也可以用于布尔索引。- 选择非空值的列:使用dropna()函数来选择非空值的列。
df.dropna(axis='columns')  # 返回一个只包含非空值列的新数据框。13. 如何根据某一列的值对一个Pandas数据框进行排序?
# 升序排序
sorted_df = df.sort_values(by='column_name')# 降序排序
sorted_df = df.sort_values(by='column_name', ascending=False)# 先按column_name1列升序排序,然后按column_name2列降序排序
sorted_df = df.sort_values(by=['column_name1', 'column_name2'], ascending=[True, False])15. 如何对一个Pandas数据框进行透视操作?
透视操作是一种对数据进行动态排布并且分类汇总的表格格式。它可以根据一个或多个键值对数据进行聚合,根据列或行的分组键将数据划分到各个区域。在数据分析中,透视操作是一种非常常用的工具,可以帮助用户快速地整理和呈现数据,发现数据的内在规律和趋势。
        Pandas提供了pivot_table()函数,可以对数据框进行透视操作。
import pandas as pd
import numpy as np# 创建一个简单的数据框
df = pd.DataFrame({'A': ['foo', 'foo', 'foo', 'foo', 'foo','bar', 'bar', 'bar', 'bar'],'B': ['one', 'one', 'one', 'two', 'two','one', 'one', 'two', 'two'],'C': ['small', 'large', 'large', 'small','small', 'large', 'small', 'small','large'],'D': [1, 2, 2, 3, 3, 4, 5, 6, 7],'E': [2, 4, 5, 5, 6, 6, 8, 9, 9]
})# 对数据框进行透视操作,按照列 A、B、C 进行分组,计算 D 和 E 的平均值
pivot_table = pd.pivot_table(df, values=['D', 'E'], index=['A', 'B'], columns=['C'], aggfunc=np.mean)print(pivot_table)
values参数指定要计算的值列,index和columns参数指定分组的方式,aggfunc参数指定使用的聚合函数。在这个例子中,我们使用np.mean函数计算平均值。