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

Pandas 5-单元格填充日期

1. 创建包含日期的DataFrame

首先,需要创建一个包含日期的DataFrame。

import pandas as pd  # 创建一个包含日期的DataFrame  
data = {  'Name': ['Alice', 'Bob', 'Charlie', 'David'],    'Age': [24, 27, 22, 32],    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston'],    'Date': ['2022-01-01', '2022-02-01', '2022-03-01', '2022-04-01']}  df = pd.DataFrame(data)  
print(df)  

输出:

      Name  Age         City        Date0    Alice   24     New York  2022-01-01  
1      Bob   27  Los Angeles  2022-02-01  
2  Charlie   22      Chicago  2022-03-01  
3    David   32      Houston  2022-04-01  

2. 将字符串转换为日期类型

Pandas提供了to_datetime方法,可以将字符串转换为日期类型。

# 将字符串转换为日期类型  
df['Date'] = pd.to_datetime(df['Date'])  
print(df)  

输出:

      Name  Age         City       Date0    Alice   24     New York 2022-01-01  
1      Bob   27  Los Angeles 2022-02-01  
2  Charlie   22      Chicago 2022-03-01  
3    David   32      Houston 2022-04-01  

3. 填充缺失的日期

在实际数据中,经常会遇到缺失的日期。可以使用pd.date_range生成连续的日期序列,并填充缺失的日期。

import numpy as np  # 创建一个包含缺失日期的DataFrame  
data = {  'Name': ['Alice', 'Bob', np.nan, 'David'],    'Age': [24, 27, 22, 32],    'City': ['New York', 'Los Angeles', 'Chicago', np.nan],    'Date': ['2022-01-01', '2022-02-01', np.nan, '2022-04-01']}  df = pd.DataFrame(data)  
df['Date'] = pd.to_datetime(df['Date'], errors='coerce')  
print(df)  # 生成连续的日期序列  
date_range = pd.date_range(start='2022-01-01', end='2022-04-01', freq='MS')  
print(date_range)  # 填充缺失的日期  
df['Date'] = df['Date'].fillna(method='ffill')  
print(df)  

输出:

      Name  Age         City       Date0    Alice   24     New York 2022-01-01  
1      Bob   27  Los Angeles 2022-02-01  
2  Charlie   22      Chicago        NaT  
3    David   32      Houston 2022-04-01  DatetimeIndex(['2022-01-01', '2022-02-01', '2022-03-01', '2022-04-01'], dtype='datetime64[ns]', freq='MS')  Name  Age         City       Date0    Alice   24     New York 2022-01-01  
1      Bob   27  Los Angeles 2022-02-01  
2  Charlie   22      Chicago 2022-02-01  
3    David   32      Houston 2022-04-01  

4. 日期格式化

可以使用dt访问器来格式化日期。

# 格式化日期  
df['Date_Formatted'] = df['Date'].dt.strftime('%Y-%m-%d')  
print(df)  

输出:

      Name  Age         City       Date Date_Formatted0    Alice   24     New York 2022-01-01     2022-01-01  
1      Bob   27  Los Angeles 2022-02-01     2022-02-01  
2  Charlie   22      Chicago 2022-02-01     2022-02-01  
3    David   32      Houston 2022-04-01     2022-04-01  

5. 日期操作

Pandas提供了多种日期操作方法,例如提取年份、月份、日等。

# 提取年份、月份、日  
df['Year'] = df['Date'].dt.year  
df['Month'] = df['Date'].dt.month  
df['Day'] = df['Date'].dt.day  
print(df)  

输出:

      Name  Age         City       Date Date_Formatted  Year  Month  Day0    Alice   24     New York 2022-01-01     2022-01-01  2022      1    1  
1      Bob   27  Los Angeles 2022-02-01     2022-02-01  2022      2    1  
2  Charlie   22      Chicago 2022-02-01     2022-02-01  2022      2    1  
3    David   32      Houston 2022-04-01     2022-04-01  2022      4    1  

http://www.mrgr.cn/news/17114.html

相关文章:

  • 巧妙的数(逐倍数判断)
  • Pinterest账号被封?试试这几种解封方法
  • java 反射
  • Docker 容器编排之 Docker Compose
  • 数据结构--带头双向循环链表
  • asp.net实验:数据库写入不成功
  • Java、python、php版 保险业务管理与数据分析系统 社会保险档案管理系统(源码、调试、LW、开题、PPT)
  • ubuntu20.04 colmap安装
  • JavaWeb JavaScript ⑨ 正则表达式
  • spring -- AOP详解
  • 如何实现一个通用的接口限流、防重、防抖机制
  • Nginx 维护与应用:最佳实践
  • 前端宝典二十一:前端异步编程规范手写Promise、async、await
  • Python Chardet介绍
  • 重塑未来:碳捕集与存储(CCS)的革命性突破与可持续发展路径
  • 大模型目录
  • 用技术手段冲击市场,上海破获特大操纵期货市场案
  • 菜鸟教程002 目标对象的中心点与源对象的中心点对齐,获取对象中心坐标
  • 电池点焊机设计要点记录及个人分析
  • 音视频解码 AVIO内存输入模式