Python中Pandas库教学(1)
什么是Pandas库?
Pandas是一个数据处理库,用于数据分析、数据清洗和数据转换等任务。它提供了快速、灵活和富有表现力的数据结构,可以方便地进行数据操作和分析。
安装Pandas库
在安装Pandas库之前,你需要安装Python。安装Python的方法可以在Python官网找到。
安装Pandas库的方法有两种:
1.使用pip工具安装:在命令行(windows+R+cmd)中运行以下命令:pip install pandas
2.使用conda工具安装:在命令行中运行以下命令:conda install pandas
导入Pandas库
在使用Pandas库之前,你需要导入它。可以使用以下代码导入Pandas库:
import pandas as pd
Pandas库的数据结构
Pandas库提供了两种主要的数据结构:Series和DataFrame。
Series
Series是一种类似于一维数组的数据结构,它可以存储任意类型的数据,例如数字、字符串和Python对象等。Series的重要特性是它具有索引,它可以让你对数据进行标记和引用。
你可以使用以下代码创建一个Series:
import pandas as pd
data = [1, 2, 3, 4, 5]
s = pd.Series(data)
print(s)
输出结果:
0 1
1 2
2 3
3 4
4 5
dtype: int64
DataFrame
DataFrame是一种二维表格数据结构,它可以存储多种类型的数据,例如数字、字符串和Python对象等。DataFrame的重要特性是它具有行索引和列索引,它可以让你对数据进行标记和引用。
你可以使用以下代码创建一个DataFrame:
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 47],
'city': ['New York', 'Paris', 'London', 'Tokyo']
}
df = pd.DataFrame(data)
print(df)
输出结果:
name age city
0 Alice 25 New York
1 Bob 32 Paris
2 Charlie 18 London
3 David 47 Tokyo
Pandas库的数据操作
Pandas库提供了各种数据操作方法,例如数据筛选、数据排序和数据统计等。
数据筛选
你可以使用以下代码选择DataFrame中的特定列:
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 47],
'city': ['New York', 'Paris', 'London', 'Tokyo']
}
df = pd.DataFrame(data)
# 选择'name'列
name_col = df['name']
print(name_col)
输出结果:
0 Alice
1 Bob
2 Charlie
3 David
Name: name, dtype: object
数据排序
你可以使用以下代码对DataFrame中的数据进行排序:
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 47],
'city': ['New York', 'Paris', 'London', 'Tokyo']
}
df = pd.DataFrame(data)
# 按照年龄升序排序
df = df.sort_values('age')
print(df)
输出结果:
name age city
2 Charlie 18 London
0 Alice 25 New York
1 Bob 32 Paris
3 David 47 Tokyo
数据统计
你可以使用以下代码对DataFrame中的数据进行统计:
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 47],
'city': ['New York', 'Paris', 'London', 'Tokyo']
}
df = pd.DataFrame(data)
# 计算年龄的平均值
mean_age = df['age'].mean()
print('Mean age:', mean_age)
输出结果:
Mean age: 30.5
Pandas库的数据清洗
Pandas库提供了各种数据清洗方法,例如处理缺失值和处理重复数据等。
处理缺失值
1.删除缺失值:可以使用==dropna()==函数删除包含缺失值的行或列。
import pandas as pd
df = pd.read_csv('data.csv')
df.dropna() # 删除包含缺失值的行
df.dropna(axis=1) # 删除包含缺失值的列
2.填充缺失值:可以使用==fillna()==函数将缺失值替换为指定值或用前一个或后一个值进行填充。
import pandas as pd
df = pd.read_csv('data.csv')
df.fillna(0) # 将缺失值替换为0
df.fillna(method='ffill') # 用前一个值进行填充
df.fillna(method='bfill') # 用后一个值进行填充
3.插值缺失值:可以使用==interpolate()==函数通过线性或多项式插值方法填充缺失值。
import pandas as pd
df = pd.read_csv('data.csv')
df.interpolate(method='linear') # 线性插值
df.interpolate(method='polynomial', order=2) # 二次多项式插值
处理重复数据
1.查找重复行:利用函数duplicated定位重复行
import pandas as pd
# 创建一个包含重复行的DataFrame
data = {'Name': ['John', 'Jack', 'Alice', 'Bob', 'John'],
'Age': [25, 30, 28, 22, 25]}
df = pd.DataFrame(data)
# 查找重复行
duplicate_rows_df = df[df.duplicated()]
print("重复行:")
print(duplicate_rows_df)
输出结果
重复行:
Name Age
4 John 25
2.删除重复行:利用函数drop_duplicates:
import pandas as pd
# 创建一个包含重复行的DataFrame
data = {'Name': ['John', 'Jack', 'Alice', 'Bob', 'John'],
'Age': [25, 30, 28, 22, 25]}
df = pd.DataFrame(data)
# 删除重复行
df = df.drop_duplicates()
print(df)
输出结果:
Name Age
0 John 25
1 Jack 30
2 Alice 28
3 Bob 22
3.查找重复列:利用函数transpose进行行列转换
import pandas as pd
# 创建一个包含重复列的DataFrame
data = {'Name': ['John', 'Jack', 'Alice', 'Bob'],
'Age': [25, 30, 28, 22],
'Age': [30, 25, 22, 28]}
df = pd.DataFrame(data)
# 查找重复列
duplicate_cols_series = df.transpose().duplicated()
print("重复列:")
print(duplicate_cols_series[duplicate_cols_series])
输出结果:
1 True
dtype: bool
4.删除重复列:
import pandas as pd
# 创建一个包含重复列的DataFrame
data = {'Name': ['John', 'Jack', 'Alice', 'Bob'],
'Age': [25, 30, 28, 22],
'Age': [30, 25, 22, 28]}
df = pd.DataFrame(data)
# 删除重复列
df = df.transpose().drop_duplicates().transpose()
print(df)
输出结果:
Name Age
0 John 30
1 Jack 25
2 Alice 22
3 Bob 28