当前位置: 首页 > news >正文

【数据分析】有关前文的复习

复习:

`Series`(一维)和 `DataFrame`(二维)是 Pandas 数据结构的两大核心,分别用于表示一维和二维的数据结构。它们非常适合处理结构化数据,尤其是时间序列和表格数据。下面详细介绍它们的定义、特点和常见用法。

一. `Series`

`Series` 是 Pandas 中用于表示一维数据的对象,类似于一列数据或一个带标签的数组。`Series` 的每个数据点都有一个标签(索引)。

  1. 创建 `Series`

代码示例:

import pandas as pd

# 创建一个简单的Series

s = pd.Series([10, 20, 30, 40])

print(s)

输出:

0    10

1    20

2    30

3    40

dtype: int64

(2)Series` 的特点

- 一维数组,包含数据和索引。

- 索引可以是标签或数字,默认为0,1,2,3,……。

- 可以包含任何数据类型(整数、浮点数、字符串等)。

(3) Series` 的具体用法

1.自定义索引:

import pandas as pd

s = pd.Series([10, 20, 30], index=['a', 'b', 'c'])

print(s)

输出:

a    10

b    20

c    30

dtype: int64

  2.访问索引: 

# 通过索引访问数据

print(s['a'])  # 输出:10

# 通过位置访问数据

print(s.iloc[0])  # 输出:10

3.进行数学运算:

可以对 `Series` 进行加减乘除等运算,例如:

s = pd.Series([1, 2, 3])

print(s + 10)  # 每个元素加10

二. `DataFrame`

`DataFrame` 是 Pandas 中用于表示二维数据的对象类似于一个表格它由行和列组成,每一列都是一个 `Series`,并且每一行和每一列都有对应的索引。

(1)创建 `DataFrame`

# 通过字典创建 DataFrame

data = {

    'Name': ['Alice', 'Bob', 'Charlie'],

    'Age': [24, 27, 22],

    'Score': [88, 92, 95]

}

df = pd.DataFrame(data)

print(df)

输出:

      Name  Age  Score

0    Alice    24     88

1    Bob     27     92

2    Charlie  22     95

(2)`DataFrame` 的特点

- 表格型数据结构,有行和列。

- 每一列都是一个`Series`。

- 支持多种数据类型(每列可以是不同的数据类型)。

(3)`DataFrame` 的具体用法

  1. 选择数据:

选择一列数据,返回 `Series`:print(df['Name'])

选择多列数据,返回 `DataFrame`:print(df[['Name', 'Score']])

2.基于条件筛选:(数据分析重要操作)

# 筛选年龄大于23的数据

filtered_df = df[df['Age'] > 23]

print(filtered_df)

3.添加新列:(数据分析重要操作)

# 添加一列新的数据

df['Passed'] = df['Score'] > 90

print(df)

输出:

      Name  Age  Score  Passed

0     Alice   24     88    False

1     Bob    27     92    True

2    Charlie  22     95    True

4.删除行或列:

# 删除 "Age" 列

df = df.drop(columns=['Age'])

print(df)

# 删除第一行

df = df.drop(index=0)

print(df)

5.统计和汇总:(需要其他计算时,要自行学习)

# 计算平均值

print(df['Sc.mean())

# 描述统计信息ore']

print(df.describe())

6.数据透视表(Pivot Table):

#DataFrame` 提供了类似 Excel 的数据透视表功能,非常适合数据汇总和分析。

# 创建一个例子 DataFrame

data = {

    'Name': ['Alice', 'Bob', 'Alice', 'Bob'],

    'Subject': ['Math', 'Math', 'Science', 'Science'],

    'Score': [85, 90, 88, 95]

  }

df = pd.DataFrame(data)

# 创建数据透视表

pivot = df.pivot_table(values='Score', index='Name', columns='Subject')

print(pivot)

输出:

PS C:\Users\DELL\Desktop> python "D:\数据分析\# 创建一个例子 DataFrame.py"

Subject  Math  Science

Name

Alice    85.0     88.0

Bob      90.0     95.0

PS C:\Users\DELL\Desktop>

PS C:\Users\DELL\Desktop>

三.总结

Series:适合一维数据处理,例如单列数据。

DataFrame:适合二维数据处理,功能丰富,支持数据选择、条件筛选、数学运算、统计分析和数据透视表。

代码具体分析:

.dt

datetime类型的数据要先通过后缀.dt转化。只有在Series和DataFrame中,列索引筛选的数据进行格式转换时,才需要.dt

.dt是一个方便的接口,可以直接在Series对象中访问日期和时间的各个组成部分,便于日期时间数据的操作和分析。

import pandas as pd

df= pd.read_csv("/Users/time/电商数据.csv", usecols=[9,10])

df["create_time"] = pd.to_datetime(df["create_time"])

df["pay_time"] = pd.to_datetime(df["pay_time"])

df["create_time"] = df["create_time"].dt.strftime("%Y-%m")

df["pay_time"] = df["pay_time"].dt.strftime("%Y-%m")

print(df)

复习:.dt 的常见用法

假设我们有一个包含日期的 Series 数据:

  1. 提取日期信息

import pandas as pd

# 创建一个包含日期的 Series

dates = pd.Series(pd.to_datetime(['2024-01-01', '2024-02-15', '2024-03-30']))

# 提取年份

print(dates.dt.year)

# 提取月份

print(dates.dt.month)

# 提取季度

print(dates.dt.quarter)

  • 年份.dt.year
  • 月份.dt.month
  • .dt.day
  • 星期几.dt.dayofweek0=星期一, 6=星期日)
  • 季度.dt.quarter
2. 提取时间信息

如果 Series 包含时间部分,还可以使用 .dt 提取时间属性:

  • 小时.dt.hour
  • 分钟.dt.minute
  • .dt.second

# 创建包含日期和时间的 Series

times = pd.Series(pd.to_datetime(['2024-01-01 08:30:00', '2024-02-15 14:45:00', '2024-03-30 23:59:59']))

# 提取小时

print(times.dt.hour)

# 提取分钟

print(times.dt.minute)

3. 时间间隔计算

如果处理的是时间间隔数据类型 timedelta64.dt 提供以下属性:

  • 总秒数.dt.total_seconds()
  • 天数.dt.days
  • 小时.dt.components.hours

# 计算两个日期之间的差

date_diff = dates - dates.min()

print(date_diff.dt.days)  # 计算日期间隔的天数

strftime()

通过后缀.dt转化后,再通过strftime()函数转为字符串。

函数内传入的参数,是需要转换的指定格式。

df["create_time"] = pd.to_datetime(df["create_time"])

df["pay_time"] = pd.to_datetime(df["pay_time"])

df["create_time"] = df["create_time"].dt.strftime("%Y-%m")

df["pay_time"] = df["pay_time"].dt.strftime("%Y-%m")

print(df)

总结

1.pd.to_datetime() 是一个功能强大的工具,可以方便地将各种格式的数据转换为 Pandas 日期时间格式,使得日期时间处理更为简单。

2. `strftime()` 是用于格式化日期时间的函数,常见于 Python 的 `datetime` 模块。通过 `strftime()`,可以将 `datetime` 对象转换为自定义格式的字符串。

相关文章:

  • 数据结构——树
  • 《大数据视角下美团优选消费者购买决策影响因素研究》开题报告
  • nest学习(5)
  • 《AI大模型趣味实战 》第7集:多端适配 个人新闻头条 基于大模型和RSS聚合打造个人新闻电台(Flask WEB版) 1
  • Web网页
  • Windows下编译安装Qt5.15.0指南
  • Kubernetes 学习详细资料
  • 【Python机器学习】3.7. 主成分分析(PCA)实战
  • HT9126DA芯片为生活增添光彩的LED灯IC
  • Qt程序增加Dump文件保存
  • Keras和 Estimator的创建历史是什么
  • 第五章 | Solidity 数据类型深度解析
  • Mysql的锁
  • lodash 学习笔记/使用心得
  • 2.企业级AD活动目录架构与设计原则实战指南
  • C# 调用 VITS,推理模型 将文字转wav音频net8.0 跨平台
  • Python FastApi(3):路径参数
  • 使用AI一步一步实现若依前端(16)
  • Elasticsearch 中的数据分片问题
  • Deepseek浪潮下,汽车芯片开启“大变局”,谁将领跑?
  • 上海明后天将迎强风大雨,陆地最大阵风7~9级
  • 牛市早报|金融政策支持稳市场稳预期发布会将举行,商务部:中方决定同意与美方进行接触
  • 重庆荣昌机关食堂五一期间受热捧:肉类总消耗2万斤,单日吃卤鹅800只
  • 五一假期上海边检查验出入境人员超61万人次,同比增长23%
  • 五角大楼要裁一批四星上将
  • 机关食堂向游客开放的重庆荣昌区,“消费市场迎来历史性突破”