📅  最后修改于: 2023-12-03 15:03:30.679000             🧑  作者: Mango
Pandas是一个用于数据操作和数据分析的Python库,在数据科学领域很受欢迎。 它提供了高性能、易于使用和灵活的数据结构,如DataFrame和Series,使得数据的导入、清洗、处理和分析变得非常容易。
在本文中,我们将演示一些基本的Pandas示例,如何使用Pandas组织、分析和可视化数据。
要使用Pandas,首先需要安装它。 可以通过运行以下命令在命令行中安装Pandas:
!pip install pandas
在开始使用Pandas之前,需要导入它。 可以使用以下命令导入Pandas:
import pandas as pd
创建DataFrame是使用Pandas进行数据分析的第一步。 DataFrame是一种二维表格数据结构,其中的行和列都包含标签,类似于电子表格或SQL表格。
以下是一个示例DataFrame:
import pandas as pd
data = {'name': ['John', 'Anna', 'Peter', 'Linda'],
'age': [32, 26, 45, 33],
'gender': ['M', 'F', 'M', 'F']}
df = pd.DataFrame(data)
print(df)
输出:
name age gender
0 John 32 M
1 Anna 26 F
2 Peter 45 M
3 Linda 33 F
这里创建了一个DataFrame,其中包含姓名、年龄和性别三列,并分别填充了四个值。
选择DataFrame数据的最基本方法是使用列标签作为关键字。 例如,要选择“name”列,可以使用以下代码:
import pandas as pd
data = {'name': ['John', 'Anna', 'Peter', 'Linda'],
'age': [32, 26, 45, 33],
'gender': ['M', 'F', 'M', 'F']}
df = pd.DataFrame(data)
print(df['name'])
输出:
0 John
1 Anna
2 Peter
3 Linda
Name: name, dtype: object
可以用同样的方式选择多列:
print(df[['name', 'age']])
输出:
name age
0 John 32
1 Anna 26
2 Peter 45
3 Linda 33
要选择 DataFrame 指定的行,可以使用切片或 Pandas 的 .loc 与 .iloc 方法,这类似于 Python 列表中的取值操作:
# 选择前两行
print(df[:2])
# 选择行索引为0、2的行
print(df.loc[[0, 2]])
# 选择前两行和前两列
print(df.iloc[:2, :2])
输出:
name age gender
0 John 32 M
1 Anna 26 F
name age gender
0 John 32 M
2 Peter 45 M
name age
0 John 32
1 Anna 26
过滤DataFrame可以用条件语句实现。 例如,要选择age大于30的人,可以使用以下代码:
import pandas as pd
data = {'name': ['John', 'Anna', 'Peter', 'Linda'],
'age': [32, 26, 45, 33],
'gender': ['M', 'F', 'M', 'F']}
df = pd.DataFrame(data)
print(df[df['age'] > 30])
输出:
name age gender
0 John 32 M
2 Peter 45 M
3 Linda 33 F
还可以对列进行过滤,例如选择性别为男性(M)的行:
print(df[df['gender'] == 'M'])
输出:
name age gender
0 John 32 M
2 Peter 45 M
除此之外,还可以使用多个条件进行过滤,并使用逻辑与(&)和逻辑或(|)进行组合:
# 选择性别为女性(F),且年龄在30到40之间的行
print(df[(df['gender'] == 'F') & (df['age'] >= 30) & (df['age'] <= 40)])
# 选择性别为女性(F),或年龄在30到40之间的行
print(df[(df['gender'] == 'F') | ((df['age'] >= 30) & (df['age'] <= 40))])
要对DataFrame进行排序,可以使用 sort_values() 方法,它可以按照一个或多个列进行排序。例如,以下代码按照年龄进行升序排序:
import pandas as pd
data = {'name': ['John', 'Anna', 'Peter', 'Linda'],
'age': [32, 26, 45, 33],
'gender': ['M', 'F', 'M', 'F']}
df = pd.DataFrame(data)
print(df.sort_values(by=['age']))
输出:
name age gender
1 Anna 26 F
0 John 32 M
3 Linda 33 F
2 Peter 45 M
Pandas 还提供了一个功能强大的分组和统计功能,可以轻松地计算 DataFrame 中每个组的汇总信息。 例如,以下代码按性别分组,并获取每个组的年龄平均值:
import pandas as pd
data = {'name': ['John', 'Anna', 'Peter', 'Linda'],
'age': [32, 26, 45, 33],
'gender': ['M', 'F', 'M', 'F']}
df = pd.DataFrame(data)
print(df.groupby(['gender'])['age'].mean())
输出:
gender
F 29.5
M 38.5
Name: age, dtype: float64
除了上述常见Pandas操作之外,还可以执行其他DataFrame操作和处理数据,例如删除行或列、合并多个DataFrame、处理缺失值、数据类型转换等。
在行和列之间进行选择和删除通常是一项常见任务。 例如,以下代码选择除“name”列以外的所有列:
import pandas as pd
data = {'name': ['John', 'Anna', 'Peter', 'Linda'],
'age': [32, 26, 45, 33],
'gender': ['M', 'F', 'M', 'F']}
df = pd.DataFrame(data)
# Drop column
df.drop(columns=['name'], inplace=True)
print(df)
输出:
age gender
0 32 M
1 26 F
2 45 M
3 33 F
还可以从DataFrame中删除行:
import pandas as pd
data = {'name': ['John', 'Anna', 'Peter', 'Linda'],
'age': [32, 26, 45, 33],
'gender': ['M', 'F', 'M', 'F']}
df = pd.DataFrame(data)
# Drop row
df.drop([1, 3], inplace=True)
print(df)
输出:
name age gender
0 John 32 M
2 Peter 45 M
在 DataFrame 中合并数据通常称为连接操作。 Pandas 支持多种类型的连接,包括内部连接、左连接、右连接和外部连接等。
以下是一个例子,它展示了如何通过合并两个 DataFrame 实现左连接:
import pandas as pd
data = {'id': [1, 2, 3, 4],
'name': ['John', 'Anna', 'Peter', 'Linda']}
df1 = pd.DataFrame(data)
data = {'id': [1, 2, 5],
'age': [32, 26, 45]}
df2 = pd.DataFrame(data)
merged = pd.merge(df1, df2, on='id', how='left')
print(merged)
输出:
id name age
0 1 John 32.0
1 2 Anna 26.0
2 3 Peter NaN
3 4 Linda NaN
出现NaN表示没有在df2中找到id为3和4的记录。
处理丢失值通常意味着识别、删除或替换 DataFrame 中的 NaN 值。 例如,以下代码将替换NaN值为0:
import pandas as pd
import numpy as np
data = {'id': [1, 2, 3, 4],
'name': ['John', 'Anna', 'Peter', 'Linda'],
'age': [32, np.nan, 45, np.nan]}
df = pd.DataFrame(data)
df.fillna(0, inplace=True)
print(df)
输出:
id name age
0 1 John 32.0
1 2 Anna 0.0
2 3 Peter 45.0
3 4 Linda 0.0
还可以使用 Pandas 将 DataFrame 中的数据类型转换。 例如,以下代码将 age 列的数据类型从 float 转换成 int:
import pandas as pd
data = {'id': [1, 2, 3, 4],
'name': ['John', 'Anna', 'Peter', 'Linda'],
'age': [32.0, 26.0, 45.0, 33.0]}
df = pd.DataFrame(data)
df['age'] = df['age'].astype(int)
print(df.dtypes)
输出:
id int64
name object
age int64
dtype: object
以上是一些使用Pandas进行数据分析的基本示例。Pandas是一个功能强大、易于使用的Python库。 它可以帮助程序员组织、清洗、处理和分析数据。 Pandas 提供了大量的示例和操作,可满足各式各样的数据处理需求。