Python数据处理库pandas入门教程基本操作
简介
pandas是Python中一种很流行的数据处理库,既拥有NumPy数组的高性能计算特性,又具备Excel表格和SQL数据库的灵活性与可操作性,是进行数据清洗、分析、转换等操作的必备利器。本文将通过一些基本操作的实例来帮助读者入门pandas。
安装
在开始使用pandas之前应该先安装它。可以通过pip命令来进行安装:
pip install pandas
导入
安装好pandas之后就可以导入它开始使用了,一般约定俗成的别名为pd:
import pandas as pd
数据对象-DataFrame
pandas主要有两种数据类型,一种是DataFrame,另一种是Series。Series是一维数组,而DataFrame则是二维的类似表格的结构,由行和列组成。在操作数据时一般都是以DataFrame的形式载入数据。
创建DataFrame
通过以下代码创建一个DataFrame对象:
import pandas as pd
data = {
'name': ['Jack', 'Kelly', 'Mike'],
'age': [18, 20, 22],
'gender': ['male', 'female', 'male']
}
df = pd.DataFrame(data)
print(df)
输出结果:
name age gender
0 Jack 18 male
1 Kelly 20 female
2 Mike 22 male
读取外部数据到DataFrame
pandas可以通过多种方式读取外部的数据文件格式,比如xlxs、csv等等。以下是读取Excel文件的示例:
import pandas as pd
df = pd.read_excel('data.xlsx')
print(df)
保存DataFrame为外部数据文件
pandas同样可以将DataFrame对象保存为多种外部数据文件格式。以下是将DataFrame保存为csv文件的示例:
import pandas as pd
data = {
'name': ['Jack', 'Kelly', 'Mike'],
'age': [18, 20, 22],
'gender': ['male', 'female', 'male']
}
df = pd.DataFrame(data)
df.to_csv('output.csv', index=False)
基本操作
查看基本信息
在使用DataFrame时,一般情况下需要先了解数据的基本信息。比如数据有哪些列、每列都有多少非空数据值、数据类型等等。可以通过以下代码获取这些信息:
import pandas as pd
df = pd.read_excel('data.xlsx')
print(df.columns) # 获取每列的列名
print(df.dtypes) # 获取每列的数据类型
print(df.info()) # 获取DataFrame的基本信息
数据选择和过滤
在DataFrame中可以通过多种方式进行数据的选择和过滤。最常用的方法是使用列的名称进行选择:
import pandas as pd
df = pd.read_excel('data.xlsx')
# 选择单列:
print(df['age'])
# 选择多列:
print(df[['name', 'gender']])
# 过滤数据:
print(df[df['age'] > 18])
排序
可以按照某一或多个列的数据进行升序或降序排列:
import pandas as pd
df = pd.read_excel('data.xlsx')
# 按照name列的数据进行升序排列:
print(df.sort_values('name'))
# 按照age和name列的数据进行降序排列:
print(df.sort_values(['age', 'name'], ascending=[False, True]))
示例
示例一:分析餐厅小费数据
import pandas as pd
# 读取小费数据
df = pd.read_csv('tips.csv')
# 输出前几行观察数据
print(df.head())
# 计算小费占账单的比例,并加入到DataFrame中
df['tip_pct'] = df['tip'] / df['total_bill']
# 输出前几行观察数据
print(df.head())
# 查看每个顾客的小费占账单比例的均值、中位数等统计信息
print(df['tip_pct'].describe())
# 按照性别和吸烟习惯分组,查看小费占账单比例的统计信息
grouped = df.groupby(['sex', 'smoker'])['tip_pct'].describe()
print(grouped)
示例二:分析电影评分数据
import pandas as pd
# 读取电影评分数据
movies = pd.read_csv('movies.csv')
ratings = pd.read_csv('ratings.csv')
# 根据"movieId"字段进行合并
data = pd.merge(movies, ratings, on='movieId')
# 针对每个电影计算平均分,并选出前20名进行观察
mean_ratings = data.pivot_table('rating', index='title',
columns='userId', aggfunc='mean')
top20 = mean_ratings.mean().sort_values(ascending=False)[:20]
print(top20)
结论
本文主要介绍了pandas的基础知识和操作方法,并且通过两个示例给读者展示了如何运用pandas进行实际数据分析。在未来的实际使用中可以根据自己的需要掌握更多的操作方法和函数来满足复杂的数据处理需求。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 数据处理库 pandas 入门教程基本操作 - Python技术站