数据分析基础之pands库

一、pands库是什么

        Pandas是一个用于数据操作和数据分析的Python库。它提供了一种灵活且高效的数据结构DataFrame和Series,可以快速处理各种数据类型(如CSV、Excel、SQL数据库等),并能够进行数据清洗、数据筛选、数据统计、数据可视化等操作。Pandas库为数据科学家和数据分析师提供了一个强大而易于使用的工具集,可以帮助他们更快地进行数据探索和分析。

二、pands库在数据分析中有那些用途?

Pandas库是Python中用于数据分析的重要工具之一,主要用于处理和分析数据。以下是Pandas库在数据分析中的常见用途:

  1. 数据读取和写入:Pandas可以读取和写入各种数据格式,如CSV、Excel、SQL等。

  2. 数据清洗和预处理:Pandas可以处理数据中的缺失值、重复值、异常值等,并进行数据类型转换、数据重塑等预处理操作。

  3. 数据分组和聚合:Pandas可以通过分组和聚合操作对数据进行统计分析。

  4. 数据可视化:Pandas可以使用Matplotlib等可视化工具绘制各种图表,如折线图、散点图、柱状图等。

  5. 时间序列分析:Pandas可以处理时间序列数据,并进行时间序列分析、滑动窗口分析等操作。

  6. 数据合并和拆分:Pandas可以合并多个数据集,并进行数据拆分、数据透视等操作,以便进行更深入的数据分析。

总之,Pandas库是Python中非常强大的数据分析工具,可以帮助数据分析师处理和分析各种数据,提高数据分析的效率和准确性。

三、pands库常用操作

1.数据的读写

以下是几个常见数据格式的读取和写入示例,包括CSV、Excel、SQL等。

(1)操作CSV数据:

CSV数据:

id,name,age
1,John,25
2,Mary,30
3,David,28

读取csv 

import pandas as pd

# 读取CSV数据
data = pd.read_csv('data.csv')

# 查看数据
print(data)

 输出结果:

   id   name  age
0   1   John   25
1   2   Mary   30
2   3  David   28

写入csv数据

import pandas as pd

# 数据
data = {'id': [1, 2, 3], 'name': ['John', 'Mary', 'David'], 'age': [25, 30, 28]}

# 转换为DataFrame
df = pd.DataFrame(data)

# 写入CSV文件
df.to_csv('data.csv', index=False)

# 查看数据
print(df)

输出结果:

   id   name  age
0   1   John   25
1   2   Mary   30
2   3  David   28

(2)操作Excel

Excel数据:

Sheet1:
id	name	age
1	John	25
2	Mary	30
3	David	28

读取Excel数据:

import pandas as pd

# 读取Excel数据
data = pd.read_excel('data.xlsx')

# 查看数据
print(data)

输出结果:

   id   name  age
0   1   John   25
1   2   Mary   30
2   3  David   28

写入Excel数据:

import pandas as pd

# 数据
data = {'id': [1, 2, 3], 'name': ['John', 'Mary', 'David'], 'age': [25, 30, 28]}

# 转换为DataFrame
df = pd.DataFrame(data)

# 写入Excel文件
df.to_excel('data.xlsx', index=False)

# 查看数据
print(df)

输出结果:

   id   name  age
0   1   John   25
1   2   Mary   30
2   3  David   28

(3)操作SQL 

SQLite数据库中的数据:

Table: users
id	name	age
1	John	25
2	Mary	30
3	David	28

读取SQLite数据:

import pandas as pd
import sqlite3

# 连接数据库
conn = sqlite3.connect('data.db')

# 读取数据
data = pd.read_sql_query('SELECT * FROM users', conn)

# 关闭连接
conn.close()

# 查看数据
print(data)

输出结果:

   id   name  age
0   1   John   25
1   2   Mary   30
2   3  David   28

写入SQLite数据:

import pandas as pd
import sqlite3

# 数据
data = {'id': [1, 2, 3], 'name': ['John', 'Mary', 'David'], 'age': [25, 30, 28]}

# 转换为DataFrame
df = pd.DataFrame(data)

# 连接数据库
conn = sqlite3.connect('data.db')

# 写入数据
df.to_sql('users', conn, if_exists='replace', index=False)

# 关闭连接
conn.close()

# 查看数据
print(df)

输出结果:

   id   name  age
0   1   John   25
1   2   Mary   30
2   3  David   28

2.数据清洗和预处理

以下是几个数据清洗和预处理的经典案例,包括处理缺失值、重复值、异常值等。假设我们有以下数据:

id,name,age,gender
1,John,25,Male
2,Mary,,Female
3,David,28,Male
4,Anna,32,
5,John,25,Male

(1)处理缺失值:

import pandas as pd
import numpy as np

# 读取数据
data = pd.read_csv('data.csv')

# 查看缺失值
print(data.isnull())

# 填充缺失值
data['age'].fillna(data['age'].mean(), inplace=True)
data['gender'].fillna('Unknown', inplace=True)

# 查看数据
print(data)

输出结果:

      id   name    age  gender
0  False  False  False   False
1  False  False   True   False
2  False  False  False   False
3  False  False  False    True
4  False  False  False   False
   id   name   age   gender
0   1   John  25.0     Male
1   2   Mary  26.0   Female
2   3  David  28.0     Male
3   4   Anna  32.0  Unknown
4   5   John  25.0     Male

(2)处理重复值:

import pandas as pd

# 读取数据
data = pd.read_csv('data.csv')

# 查看重复值
print(data.duplicated())

# 删除重复值
data.drop_duplicates(inplace=True)

# 查看数据
print(data)

输出结果:

0    False
1    False
2    False
3    False
4     True
dtype: bool
   id   name   age  gender
0   1   John  25.0    Male
1   2   Mary   NaN  Female
2   3  David  28.0    Male
3   4   Anna  32.0     NaN

(3)处理异常值:

import pandas as pd

# 读取数据
data = pd.read_csv('data.csv')

# 查看异常值
print(data[(data['age'] < 0) | (data['age'] > 100)])

# 删除异常值
data = data[(data['age'] >= 0) & (data['age'] <= 100)]

# 查看数据
print(data)

输出结果:

Empty DataFrame
Columns: [id, name, age, gender]
Index: []
   id   name  age  gender
0   1   John   25    Male
1   2   Mary   30  Female
2   3  David   28    Male
3   4   Anna   32     NaN
4   5   John   25    Male
  1. 数据类型转换:
import pandas as pd

# 读取数据
data = pd.read_csv('data.csv')

# 转换数据类型
data['age'] = pd.to_numeric(data['age'], errors='coerce')

# 查看数据类型
print(data.dtypes)

# 查看数据
print(data)

输出结果:

id         int64
name      object
age      float64
gender    object
dtype: object
   id   name   age  gender
0   1   John  25.0    Male
1   2   Mary   NaN  Female
2   3  David  28.0    Male
3   4   Anna  32.0     NaN
4   5   John  25.0    Male

3.数据分组和聚合 

以下是几个数据分组和聚合的经典案例,包括按照某一列分组计算平均值、总和、个数等。假设我们有以下数据:

id,name,age,salary
1,John,25,5000
2,Mary,30,6000
3,David,28,5500
4,Anna,32,7000
5,John,25,5500

(1)按照某一列分组计算平均值:

import pandas as pd

# 读取数据
data = pd.read_csv('data.csv')

# 按照age列分组计算平均值
result = data.groupby('age')['salary'].mean()

# 查看结果
print(result)

输出结果:

age
25    5250.000000
28    5500.000000
30    6000.000000
32    7000.000000
Name: salary, dtype: float64

(2)按照某一列分组计算总和:

import pandas as pd

# 读取数据
data = pd.read_csv('data.csv')

# 按照age列分组计算总和
result = data.groupby('age')['salary'].sum()

# 查看结果
print(result)

输出结果:

age
25    10500
28     5500
30     6000
32     7000
Name: salary, dtype: int64

(3)按照某一列分组计算个数:

import pandas as pd

# 读取数据
data = pd.read_csv('data.csv')

# 按照age列分组计算个数
result = data.groupby('age')['salary'].count()

# 查看结果
print(result)

输出结果:

age
25    2
28    1
30    1
32    1
Name: salary, dtype: int64

(4)按照多列分组计算平均值:

import pandas as pd

# 读取数据
data = pd.read_csv('data.csv')

# 按照age和name列分组计算平均值
result = data.groupby(['age', 'name'])['salary'].mean()

# 查看结果
print(result)

输出结果:

age  name 
25   John     5250
     Mary     6000
28   David    5500
32   Anna     7000
Name: salary, dtype: int64
  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值