pandas-经典栗子

一. Pandas-日期数据类型

1. 假设有一个datetime对象,表示2023年9月1日的日期和时间,如何将其转换为字符串表示形式

from datetime import datetime
dt = datetime(2025,1,1)
dt_str= dt.strftime("%Y-%m-%d")
dt_str
'2025-01-01'

2.请将2023年9月1日12点30分和2023年10月2日13点转换为datetime对象,并计算它们之间的时间差

import datetime

# 创建datetime对象
start_time = datetime.datetime(2023, 9, 1, 12, 30, 0)
end_time = datetime.datetime(2023, 10, 2, 13, 0, 0)

# 计算时间差
time_diff = end_time - start_time
from datetime import datetime

# 将日期时间字符串转换为datetime对象
dt1 = datetime.strptime('2023-09-01 12:30:00', '%Y-%m-%d %H:%M:%S')
dt2 = datetime.strptime('2023-10-02 13:00:00', '%Y-%m-%d %H:%M:%S')

# 计算时间差
time_diff = dt2 - dt1

# 输出时间差
print("时间差是:", time_diff)
print("时间差的天数:", time_diff.days)
print("时间差的秒数:", time_diff.total_seconds())
时间差是: 31 days, 0:30:00
时间差的天数: 31
时间差的秒数: 2680200.0

3.有如下数据,date = {“data”: [“2023-01-01”, “2023-03-01”, “2023-02-01”, “2023-06-01”, “2023-04-01”, “2023-05-01”]},请将其转换为datetime类型数据,并将其按照日期降序进行排序

import pandas as pd

date = {"date": ["2023-01-01", "2023-03-01", "2023-02-01", "2023-06-01", "2023-04-01", "2023-05-01"]}
df = pd.DataFrame(date)
df["date"] = pd.to_datetime(df["date"])
df = df.sort_values("date", ascending=False)
from datetime import datetime

# 输入数据
date = {"data": ["2023-01-01", "2023-03-01", "2023-02-01", "2023-06-01", "2023-04-01", "2023-05-01"]}

# 将字符串列表转换为datetime对象列表
datetime_list = [datetime.strptime(d, '%Y-%m-%d') for d in date['data']]

# 按照日期降序排序
datetime_list.sort(reverse=True)

# 输出排序后的datetime对象
for dt in datetime_list:
    print(dt.strftime('%Y-%m-%d'))

2023-06-01
2023-05-01
2023-04-01
2023-03-01
2023-02-01
2023-01-01

4. 使用datetime获取到当前时间,并在当前时间的基础上加上1天

from datetime import datetime, timedelta

# 获取当前时间
current_time = datetime.now()

# 在当前时间的基础上加上1天
new_time = current_time + timedelta(days=1)

# 输出当前时间和新时间
print("当前时间:", current_time.strftime('%Y-%m-%d %H:%M:%S'))
print("加上一天后的时间:", new_time.strftime('%Y-%m-%d %H:%M:%S'))

当前时间: 2025-01-04 23:49:59
加上一天后的时间: 2025-01-05 23:49:59
<think>好的,用户问的是“pandas是干嘛的”。首先我要确定用户的基本背景。可能是一个刚开始学习Python数据分析的新手,或者是对数据处理工具不太了解的人。需要从基础讲起,避免使用太多专业术语。 Pandas的核心功能是数据处理,但得具体说明它能处理哪些类型的数据,比如表格数据、时间序列等。应该举例说明常见应用场景,比如数据清洗、分析、可视化,这样用户更容易理解。 用户可能想知道Pandas和其他库(比如NumPy)的区别,可以简单提一下。同时,需要强调Pandas在数据操作上的便捷性,比如读取文件、处理缺失值、合并数据等功能。 还要考虑用户的实际需求,可能他们需要处理Excel或CSV文件,或者进行统计分析,这时候Pandas就非常有用。可能需要提到常用的数据结构,如DataFrame和Series,但不用太深入,保持简洁。 另外,要确保语言口语化,避免生硬。比如用“简单来说”开头,让读者感觉亲切。最后,可以给出一个简单的代码示例,展示Pandas的基本用法,让用户有直观的认识。同时提醒安装和导入的步骤,方便他们自己尝试。 总结回答结构:定义、功能、应用场景、数据结构和简单例子。确保覆盖用户可能关心的点,同时保持回答清晰易懂。</think>简单来说,**Pandas** 是 Python 中一个专门用于数据分析和处理的库,它的名字来源于 "Panel Data"(面板数据)。以下是它的核心用途: --- ### 🎯 **核心功能** 1. **数据读写** - 轻松处理 CSV/Excel/SQL/JSON 等格式(比如 `pd.read_csv("data.csv")`) 2. **数据清洗** - 处理缺失值、重复值(`dropna()`, `fillna()`) - 类型转换(字符串转日期、数字转分类) 3. **数据分析** - 快速统计(平均值、方差、分位数) - 分组聚合(`groupby` + `sum/mean/count`) 4. **数据操作** - 合并表格(`merge`, `concat`) - 行列筛选(`df[df["年龄"] > 18]`) - 时间序列处理(重采样、滑动窗口) --- ### 🔍 **典型场景** - 从杂乱数据中提取关键指标(如销售报表分析) - 为机器学习准备结构化数据(特征工程) - 快速生成数据可视化(配合 Matplotlib/Seaborn) --- ### 📊 **核心数据结构** - **Series** 一维数据(类似带标签的数组),例如: ```python s = pd.Series([10, 20, 30], name="销量") ``` - **DataFrame** 二维表格(类似 Excel 工作表),例如: ```python data = {"姓名": ["张三", "李四"], "年龄": [25, 30]} df = pd.DataFrame(data) ``` --- ### 🌰 **举个栗子** 假设有一个 CSV 文件 `sales.csv`: | 日期 | 产品 | 销售额 | |------------|--------|--------| | 2023-01-01 | 手机 | 5000 | | 2023-01-02 | 电脑 | 8000 | 用 Pandas 快速分析: ```python import pandas as pd # 读取数据 df = pd.read_csv("sales.csv") # 计算每个产品的总销售额 print(df.groupby("产品")["销售额"].sum()) # 输出结果👇 # 产品 # 手机 5000 # 电脑 8000 ``` --- ### 💡 **为什么选择Pandas?** - 语法简洁(比纯 Python 代码节省 80% 的时间⏳) - 底层基于 NumPy,处理大数据效率高 - 社区活跃(遇到问题几乎都能搜到解决方案) 如果要做数据分析,Pandas 绝对是 Python 中最值得优先学习的工具!🚀
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值