Python可视化表格对象实现统计分析

一、引言

介绍统计分析在数据科学中的重要性:在数据科学中,统计分析是挖掘数据价值的关键工具,它帮助我们理解数据特性,探索数据关联,预测未来趋势。通过统计分析,我们能深入洞察业务背景,为决策提供有力依据。

二、python 数据可视化对表格对象的描述

Python数据可视化对于表格对象的描述非常重要,因为它能够将复杂的数据结构以直观、易于理解的方式呈现出来。使用Python的可视化库,如Matplotlib、Seaborn和Pandas等,可以对表格数据进行各种形式的可视化描述,包括条形图、饼图、直方图、散点图等。通过这些图表,我们可以快速了解数据的基本分布、异常值、相关性等信息,进而进行更深入的数据分析和挖掘。

思维导图:

 三、表格对象的增删查改

   1.三种表格对象的查询方法

 ·三种表格对象的查询方法

使用Pandas库:Pandas是一个强大的数据处理库,主要用于数据分析和处理。它提供了DataFrame数据结构,可以方便地处理表格数据。

示例:

import pandas as pd  
  
# 读取表格数据  
df = pd.read_csv('data.csv')  
  
# 查询数据  
result = df[df['column_name'] == value]  # 查询列等于特定值的行  
result = df[df['column_name'].isin([value1, value2])]  # 查询列在特定值列表中的行  
result = df[df['column_name'] > threshold]  # 查询列大于特定阈值的行

使用SQLAlchemy库:SQLAlchemy是一个用于Python的SQL工具包和对象关系映射(ORM)系统,可以用于查询数据库中的表格数据。通过创建数据库连接、会话和查询语句,可以灵活地获取表格数据。

示例:

from sqlalchemy import create_engine, asc, and_  
from sqlalchemy.orm import sessionmaker  
from your_model import YourTable  # 替换为你的模型类名  
  
# 创建数据库连接  
engine = create_engine('sqlite:///data.db')  # 替换为你的数据库连接字符串  
Session = sessionmaker(bind=engine)  
session = Session()  
  
# 查询数据  
result = session.query(YourTable).filter(and_(YourTable.column1 == value1, YourTable.column2 == value2)).order_by(asc(YourTable.column_name)).all()  # 查询满足多个条件的行

使用Python内建的字典数据结构:如果表格数据存储在一个字典中,可以通过字典的键来查询数据。可以使用字典的get()方法或[]运算符来获取指定键的值。如果需要查询多个键的值,可以使用字典的values()方法或items()方法。

data = {  
    'column1': ['value1', 'value2', 'value3'],  
    'column2': ['value4', 'value5', 'value6'],  
    'column3': ['value7', 'value8', 'value9']  
}  # 替换为你的表格数据  
  
# 查询数据  
result = data.get('column_name', [])  # 获取指定键的值,如果不存在则返回空列表  
result = [value for key, value in data.items() if key == 'column_name']  # 获取所有键等于指定值的值列表

   

知识点对接:

访问单列:表格对象 ['列名称'] [行索引]

访问多列:表格对象 [['列名称1','列名称2',...]] [行索引]

示例:

· loc方法

loc是Python中pandas库中的一个方法,用于基于标签进行定位和选择数据。它提供了一种直观和灵活的方式来选择和操作DataFrame或Series中的数据。

loc方法的基本语法如下:

df.loc[row_indexer, column_indexer]

其中,row_indexer是行选择器,用于指定要选择的行的标签或布尔数组。可以是单个标签、标签列表、标签切片、布尔数组或布尔Series。column_indexer是列选择器,用于指定要选择的列的标签或布尔数组。可以是单个标签、标签列表、标签切片、布尔数组或布尔Series。

 访问单列:表格对象.loc[行索引,'列名称']

 访问多列:表格对象.loc[行索引,['列名称1','列名称2',...]]

示例:

· iloc方法

iloc是Python中pandas库中的一个方法,用于基于整数位置进行定位和选择数据。它提供了一种基于行号和列号的方式来进行数据选择。

df.iloc[row_indexer, column_indexer]

其中,row_indexer是行选择器,用于指定要选择的行的整数位置或整数位置的切片。可以是单个整数、整数列表、整数切片或布尔数组。column_indexer是列选择器,用于指定要选择的列的整数位置或整数位置的切片。可以是单个整数、整数列表、整数切片或布尔数组。

表格对象.iloc[行索引,列索引]

和loc方法的区别主要在列索引,iloc中的列索引表示列的序号,接收的是数字

示例:

2、两种查询方法

· query方法

语法:**表格对象.query(查询条件字符串)**

 查询条件字符串:例如:'a>1','性别=="男"','a>1 and b==2'

示例:

·loc方法

语法:**表格对象.loc[ 布尔值序列 , 列索引 ]**

布尔值序列由一个序列对象做条件判断运算得到,如:df['年龄']==18

布尔值序列中True所在的行即满足条件的行

当列索引为":"时(查询所有的列),条件查询语句也可以简写为:**表格对象[布尔值序列]**

示例:

3、表格对象索引重置

对于Pandas的DataFrame对象,可以使用reset_index()方法来重置索引。这将创建一个新的列,其中包含原始索引的值,并将原始索引替换为默认的整数索引。例如:

import pandas as pd  
  
# 创建一个示例DataFrame  
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})  
  
# 重置索引  
df_reset = df.reset_index()  
  
print(df_reset)

输出:

css `A  B  index  
0  1  4  0  
1  2  5  1  
2  3  6  2

可以看到,原始的整数索引已经被替换为一个名为“index”的新列。

如果您想要重置DataFrame的行索引并使用默认的整数索引,可以传递参数drop=Truereset_index()方法,例如:

df_reset = df.reset_index(drop=True)

这样会将行索引替换为一个从0开始的整数索引。

4、数据新增

导入必要的库:根据所使用的数据库或数据存储系统,需要导入相应的Python库。例如,对于关系型数据库(如MySQL、PostgreSQL等),可以使用pymysqlpsycopg2等库;对于NoSQL数据库(如MongoDB),可以使用pymongo库。

下面是一个使用Python进行数据新增的示例代码,以MySQL数据库为例:

import pymysql  
  
# 建立连接  
conn = pymysql.connect(host='localhost', user='username', password='password', db='database_name')  
  
# 创建游标  
cursor = conn.cursor()  
  
# 定义要插入的数据  
data = {'name': 'John Doe', 'age': 30, 'email': 'johndoe@example.com'}  
  
# 执行插入操作  
sql = "INSERT INTO users (name, age, email) VALUES (%s, %s, %s)"  
cursor.execute(sql, (data['name'], data['age'], data['email']))  
  
# 提交事务  
conn.commit()  
  
# 关闭连接  
cursor.close()  
conn.close()

知识点对接:

语法:表格对象['新的列名称'] = 新的序列对象

案例:新增一列以人民币计算的支付费用

示例:

df2['支付费用(人名币)'] = df2['支付费用(美元)']*7.29
df2

输出:

5、数据的删除

  1. 使用 remove() 方法删除指定元素。
  2. 使用 pop() 方法删除指定位置的元素。
# 示例  
my_list = [1, 2, 3, 4]  
my_list.remove(3)  # 现在 my_list 是 [1, 2, 4]  
my_list.pop(1)  # 现在 my_list 是 [1, 4]

6、数据的修改

示例:

df = pd.DataFrame(
    [['张三','男'],['李四','女']],
    columns=['姓名','性别']
)
df

输出:

四、分组统计分析

在Python中,可以使用Pandas库进行分组统计分析。Pandas提供了一个强大的DataFrame对象,可以方便地对数据进行分组、聚合和统计。

以下是一个简单的示例,演示如何使用Pandas进行分组统计分析:

import pandas as pd  
  
# 创建一个示例DataFrame  
data = {'name': ['Alice', 'Bob', 'Charlie', 'David', 'Emily'],  
        'age': [25, 32, 18, 47, 22],  
        'gender': ['F', 'M', 'M', 'M', 'F'],  
        'salary': [50000, 70000, 30000, 90000, 40000]}  
df = pd.DataFrame(data)  
  
# 对性别进行分组,并计算每个性别的平均薪水  
grouped = df.groupby('gender')['salary'].mean()  
print(grouped)

输出:

gender  
F     40000.0  
M     65000.0  
Name: salary, dtype: float64

在上面的示例中,我们首先创建了一个包含姓名、年龄、性别和薪水的DataFrame。然后,使用groupby()函数按照性别对数据进行分组,并使用mean()函数计算每个性别的平均薪水。最后,将结果打印出来。

除了计算平均值外,还可以使用其他聚合函数进行统计分析,例如计数、求和、方差等。Pandas还提供了丰富的数据切片和筛选功能,可以根据需要对数据进行筛选和处理。

五、时间类型数据处理

Python中的时间类型数据处理主要涉及到datetime模块。以下是关于datetime模块的一些基本操作:

1.导入datetime模块:

from datetime import datetime

2.获取当前时间:

now = datetime.now()  
print("当前时间:", now)

3.格式化日期:

formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")  
print("格式化后的时间:", formatted_date)

4.解析日期字符串:

date_string = "2023-07-18 15:30:00"  
parsed_date = datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")  
print("解析后的时间:", parsed_date)

5.时间差计算:

start_time = datetime(2023, 7, 18, 10, 0, 0)  
end_time = datetime(2023, 7, 18, 15, 30, 0)  
time_difference = end_time - start_time  
print("时间差:", time_difference)

6.时间加减:

# 加时间  
new_time = now + datetime.timedelta(days=5)  
print("加5天后的时间:", new_time)  
  
# 减时间  
new_time = now - datetime.timedelta(hours=3)  
print("减3小时后的时间:", new_time)

六、总结

在数据驱动的时代,统计分析的重要性日益凸显。Python,作为一种通用编程语言,凭借其强大的库和工具,在数据分析和可视化方面展现出无与伦比的优势。其中,Python的可视化表格对象为统计分析工作提供了极大的便利。

Python在可视化表格对象实现统计分析方面的优势:

  • 易用性:Python拥有众多用于数据分析和可视化的库,如Pandas、Matplotlib和Seaborn等。这些库为用户提供了直观的API,使得数据的处理、清洗、分析和可视化变得简单快速。
  • 灵活性:Python的可视化库允许用户根据需求定制图表,从简单的线图到复杂的散点图、热力图等,都可以轻松实现。
  • 高效性:Python在数据科学和机器学习领域有很高的性能。通过利用NumPy等科学计算库,Python可以进行大规模数据的快速处理和分析。
  • 交互性:Python的可视化图表可以与用户进行交互,允许用户通过鼠标操作进行图表的缩放、平移等操作,增强了用户体验。

  • 20
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值