1. pandas简介
pandas是Python库中一个非常强大的数据分析工具,它提供了易于使用的数据结构和数据操作工具,可帮助我们快速方便地将数据集合成员数据进行转换和应用这些数据,称为“数据清洗”和“预处理”。
Pandas是numpy 库的一个封装,因此与numpy结合使用更为完美。通过使用pandas,您可以对SDS(Structured Data Set)完成三个操作: load, prepare, extract.(SDS是一个由行和列表示数据元素的矩形结构。)
2. pandas库的导入
在使用pandas 库之前,需要在本地计算机上安装pandas库,安装命令如下:
pip install pandas
安装pandas库之后,您可以通过以下方式导入pandas库:
import pandas as pd
3. pandas库数据结构
Pandas 库提供了两种数据结构 - Series和DataFrame。
3.1 Series数据结构
Series 是一种类似于一维数组的对象,可以存储任何类型的数据(整数,字符串,浮点数,Python对象等)。系列的轴标签统称为索引。以下是创建Series对象的基本语法:
import pandas as pd
data = pd.Series([0.25, 0.5, 0.75, 1.0])
print(data)
这将输出以下内容:
0 0.25
1 0.50
2 0.75
3 1.00
dtype: float64
可以看到,输出结果中第一列是索引,第二列是数据。
3.2 DataFrame数据结构
DataFrame是pandas中最重要的数据结构之一。它是一个表格型的数据结构,包含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型等)。DataFrame既有行索引,也有列索引,可以被视为由Series组成的参数,可以看作是一个Series字典。
可以通过以下方式创建DataFrame对象:
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],'age': [25, 26, 25, 23],'city': ['Beijing', 'Shanghai','New York', 'London']}
df = pd.DataFrame(data, columns=['name', 'age', 'city'])
print(df)
这将输出以下内容:
name age city
0 Alice 25 Beijing
1 Bob 26 Shanghai
2 Charlie 25 New York
3 David 23 London
4. pandas库数据操作
4.1 数据读取
pandas 库可以非常容易地读取和写入各种格式的文件,如 .csv、.xlsx等格式的文件。例如,要读取csv文件,可以使用pandas中的read_csv()函数:
data = pd.read_csv('data.csv')
print(data)
4.2 数据清洗与预处理
数据的清洗和预处理是数据分析中的重要步骤。使用pandas库,我们可以轻松地完成数据转换、数据填充、数据清洗、去除重复数据等操作。
4.2.1 去除重复数据
请看以下示例:
import pandas as pd
data = pd.DataFrame({
'name': ['Alice', 'Bob', 'Charlie', 'David', 'Bob'],
'age': [25, 26, 25, 23, 27],
'gender': ['F', 'M', 'M', 'M', 'M']
})
data.drop_duplicates(subset=['name','age'], inplace=True)
print(data)
这将输出以下内容:
name age gender
0 Alice 25 F
1 Bob 26 M
2 Charlie 25 M
3 David 23 M
4.2.2 缺失值填充
请看以下示例:
import pandas as pd
import numpy as np
data = pd.DataFrame({
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, np.NaN, 25, 23],
'gender': ['F', 'M', np.NaN, 'M']
})
data['age'].fillna(data['age'].mean(), inplace=True)
data['gender'].fillna('Unknown', inplace=True)
print(data)
这将输出以下内容:
name age gender
0 Alice 25.0 F
1 Bob 24.3 M
2 Charlie 25.0 Unknown
3 David 23.0 M
4.2.3 数据合并与拆分
为了更好地理解数据合并和拆分,在此我们先创建两个dataframe:
import pandas as pd
data1 = pd.DataFrame({
'id': [1, 2, 3, 4, 5],
'name': ['Alice', 'Bob', 'Charlie', 'David', 'Esther'],
'age': [25, 26, 25, 23, 27]
})
data2 = pd.DataFrame({
'id': [1, 2, 3, 6, 7],
'gender': ['F', 'M', 'M', 'F', 'M'],
'city': ['Beijing', 'Shanghai','New York', 'London', 'Paris']
})
现在,我们假设要将data2中的gender和city两个列合并到data1中,示例代码如下:
merged = pd.merge(data1, data2, how='outer', on='id')
print(merged)
这将输出以下内容:
id name age gender city
0 1 Alice 25 F Beijing
1 2 Bob 26 M Shanghai
2 3 Charlie 25 M New York
3 4 David 23 NaN NaN
4 5 Esther 27 NaN NaN
5 6 NaN NaN F London
6 7 NaN NaN M Paris
现在,我们来看看如何将data1中的姓名和年龄列拆分成两个Series对象,示例代码如下:
s1 = data1['name']
s2 = data1['age']
print(s1)
print(s2)
这将分别输出以下内容:
0 Alice
1 Bob
2 Charlie
3 David
4 Esther
Name: name, dtype: object
0 25
1 26
2 25
3 23
4 27
Name: age, dtype: int64
总结
在本篇文章中,我们介绍了Python中用于数据科学的pandas库,并深入了解了它的数据结构、数据操作和常用函数。我相信,通过本篇文章的学习,您已经能够熟练使用pandas库进行数据分析和数据处理了。希望您在实际运用中取得好成果!