Python的DataFrame基础使用

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':