1. DataFrame介绍
DataFrame是pandas库中最核心的数据结构之一,它可以将二维的数据结构表示成表格形式,类似于Excel表格。DataFrame支持多种数据类型,包括数值、字符串、时间序列甚至自定义的数据类型,同时也提供了各种便利的操作和方法。有了DataFrame,我们可以轻松地进行数据的筛选、统计、计算等操作。
2. 创建DataFrame
2.1 从字典创建DataFrame
可以通过字典来创建DataFrame,其中字典的键代表列名,字典的值代表列数据。下面的示例演示了如何从字典创建DataFrame:
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 47],
'city': ['Beijing', 'Shanghai', 'Guangzhou', 'Shenzhen']}
df = pd.DataFrame(data)
print(df)
输出结果:
name | age | city | |
---|---|---|---|
0 | Alice | 25 | Beijing |
1 | Bob | 32 | Shanghai |
2 | Charlie | 18 | Guangzhou |
3 | David | 47 | Shenzhen |
2.2 从CSV文件创建DataFrame
除了可以从字典创建DataFrame外,还可以从CSV文件中读取数据创建DataFrame。下面的示例演示了如何从CSV文件创建DataFrame:
import pandas as pd
df = pd.read_csv('data.csv')
print(df)
输出结果:
name | age | city | |
---|---|---|---|
0 | Alice | 25 | Beijing |
1 | Bob | 32 | Shanghai |
2 | Charlie | 18 | Guangzhou |
3 | David | 47 | Shenzhen |
3. 数据查看和预处理
3.1 快速预览
在处理数据时,我们通常需要先对数据做一个快速的预览,这可以帮助我们初步了解数据的结构和内容。下面的示例演示了如何对DataFrame做一个快速预览:
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 47],
'city': ['Beijing', 'Shanghai', 'Guangzhou', 'Shenzhen']}
df = pd.DataFrame(data)
# 查看前5行数据
print(df.head())
# 查看最后5行数据
print(df.tail())
# 查看数据的行列数
print(df.shape)
# 查看数据的列名
print(df.columns)
# 查看数据的基本信息
print(df.info())
# 查看数值型数据的统计信息
print(df.describe())
输出结果:
head():
name | age | city | |
---|---|---|---|
0 | Alice | 25 | Beijing |
1 | Bob | 32 | Shanghai |
2 | Charlie | 18 | Guangzhou |
3 | David | 47 | Shenzhen |
tail():
name | age | city | |
---|---|---|---|
0 | Alice | 25 | Beijing |
1 | Bob | 32 | Shanghai |
2 | Charlie | 18 | Guangzhou |
3 | David | 47 | Shenzhen |
shape:(4, 3)
columns: Index(['name', 'age', 'city'], dtype='object')
info():
non-null | Dtype | |
0 | non-null | object |
1 | non-null | int64 |
2 | non-null | object |
describe():
age | |
---|---|
count | 4.000000 |
mean | 30.500000 |
std | 13.968712 |
min | 18.000000 |
25% | 23.250000 |
50% | 28.500000 |
75% | 35.750000 |
max | 47.000000 |
3.2 数据清洗
在使用DataFrame进行分析前,考虑到数据质量,可能需要先对数据进行清洗。下面以删除空值和重复值为例进行讲解。
3.2.1 删除空值
在处理数据时,经常会出现缺失数据的情况,这时需要将缺失数据进行处理。一种处理方法是删除具有空值的行或列。下面演示如何删除具有空值的行和列:
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David', None],
'age': [25, 32, None, 47, 18],
'city': ['Beijing', 'Shanghai', 'Guangzhou', None, 'Shenzhen']}
df = pd.DataFrame(data)
# 删除具有空值的行
df = df.dropna()
# 删除具有空值的列
df = df.dropna(axis=1)
print(df)
输出结果:
name | age | city | |
---|---|---|---|
0 | Alice | 25 | Beijing |
1 | Bob | 32 | Shanghai |
3 | David | 47 | Shenzhen |
3.2.2 删除重复值
在处理数据时,经常会出现重复数据的情况,这时需要将重复数据进行处理。下面演示如何删除重复数据:
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David', 'Bob'],
'age': [25, 32, 18, 47, 32],
'city': ['Beijing', 'Shanghai', 'Guangzhou', 'Shenzhen', 'Shanghai']}
df = pd.DataFrame(data)
# 删除重复数据
df = df.drop_duplicates()
print(df)
输出结果:
name | age | city | |
---|---|---|---|
0 | Alice | 25 | Beijing |
1 | Bob | 32 | Shanghai |
2 | Charlie | 18 | Guangzhou |
3 | David | 47 | Shenzhen |
4. 数据筛选、操作和统计
4.1 数据筛选
在实际数据处理中,经常需要对指定条件下的数据进行筛选和提取,DataFrame提供了灵活的筛选方式。下面的示例演示如何根据条件筛选数据:
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 47],
'city': ['Beijing', 'Shanghai', 'Guangzhou', 'Shenzhen']}
df = pd.DataFrame(data)
# 筛选年龄大于30岁的数据
df = df[df['age'] > 30]
print(df)
输出结果:
name | age | city | |
---|---|---|---|
1 | Bob | 32 | Shanghai |
3 | David | 47 | Shenzhen |
4.2 数据操作
在实际数据处理中,常常需要进行一些简单的数据操作,比如排序、去重、赋值等操作。下面的示例演示如何进行数据操作:
4.2.1 排序
在数据处理中,经常需要将数据按照某个字段进行排序。下面的示例演示如何对数据进行排序:
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 47],
'city': ['Beijing', 'Shanghai', 'Guangzhou', 'Shenzhen']}
df = pd.DataFrame(data)
# 按年龄升序排序
df = df.sort_values(by='age')
print(df)
输出结果:
name | age | city | |
---|---|---|---|
2 | Charlie | 18 | Guangzhou |
0 | Alice | 25 | Beijing |
1 | Bob | 32 | Shanghai |
3 | David | 47 | Shenzhen |
4.2.2 赋值
在数据处理中,经常需要对指定字段进行修改或赋值。下面的示例演示如何对DataFrame进行赋值:
import pandas as pd
data = {'name':