[python+pandas]数据预处理-时间格式转换

本文介绍了Python中处理时间格式转换的两种主要方法:使用time和datetime模块,以及使用pandas库。通过示例展示了如何将时间字符串转换为结构化时间,并进行格式化输出。同时,还提供了日期和时间格式化符号的参考表。
摘要由CSDN通过智能技术生成

在数据预处理中,由于数据来源多源异构,因此对于数据格式的转换统一必不可少,而时间格式的转换统一更是其中尤为频繁的场景。因此本文总结了python中经常使用的几种转换方法。

1.使用time/datetime转换

1.1.time

  1. 将时间字符串转为time的结构化时间表示形式;

  2. 将结构化时间转为目标形式的时间字符串。

time

步骤1和步骤2都需要匹配字符串的形式,步骤1的中匹配形式与字符串形式必须一致,不一致则转换不成功,步骤2中匹配形式根据需要自己设置。

函数参数返回值
time.strptime()(string[,format])struct_time对象
time.strftime()(format[, stuct_time])字符串
import time

timestr ="2020-10-1 14:57:25"
timearray = time.strptime(timestr,"%Y-%m-%d %H:%M:%S")
print(time.strftime("%Y/%m/%d %I:%M:%S %p",timearray))
# 2020/10/01 2:57:25 PM

timestr ="2020/10/01 02:57:25 PM"
timearray = time.strptime(timestr,"%Y/%m/%d %I:%M:%S %p")
print(time.strftime("%Y-%m-%d",timearray))
# 2020-10-01

附: 日期格式化符号

时间符号详细
%y两位数的年份表示(00-99)
%Y四位数的年份表示(000-9999)
%m月份(01-12)
%b简化的月份名称( e g . ^{eg.} eg. Jan)
%B完整的月份名称( e g . ^{eg.} eg. January)
%d月内中的一天(0-31)
%H24小时制小时数(0-23)
%I12小时制小时数(01-12)
%M分钟数(00-59)
%S秒(00-59)
星期%a简化星期名称( e g . ^{eg.} eg. Sun)
星期%A完整星期名称( e g . ^{eg.} eg. Sunday)
上午/下午%p本地AM或PM的等价符

1.2.datetime

在这里插入图片描述

from datetime import datetime

timestr ="2020-10-1 14:57:25"
timearray = datetime.strptime(timestr,"%Y-%m-%d %H:%M:%S")
print(timearray.strftime("%Y/%m/%d %I:%M:%S %p"))
# 2020/10/01 2:57:25 PM

2.使用pandas转换

在这里插入图片描述

import pandas as pd

# data source, usually read from file or database
TimeList = ["10-1-2020","10-2-2020","10-3-2020","10-4-2020","10-5-2020","10-6-2020"]
TimeStrSeries = pd.Series(TimeList)

# if data form is dataframe(eg. df), use df["column_name"] as TimeStrSeries
TimeSeries = pd.to_datetime(TimeStrSeries,format="%m-%d-%Y")
NewTimeStrSeries = TimeSeries.dt.strftime("%Y/%m/%d")
print(NewTimeStrSeries)
# 0    2020/10/01
# 1    2020/10/02
# 2    2020/10/03
# 3    2020/10/04
# 4    2020/10/05
# 5    2020/10/06

更多内容欢迎参观我的个人站

Python中,pandas是一个常用的数据处理库,可以用于数据的读取、清洗、转换和分析等操作。其中,pandas提供了多种功能和方法来进行数据预处理。 其中,关于数据的重复处理,可以使用DataFrame的duplicated方法来判断各行是否是重复行。这个方法返回一个布尔型Series,表示各行是否是重复行。例如,在一个DataFrame中,可以使用data.duplicated()来查看各行是否是重复行。 此外,在数据预处理中,Python内置的None值也会被当作NA处理。可以使用isnull方法来判断数据中是否存在NA值。例如,在Series中,可以使用string_data.isnull()来判断字符串数据中是否存在NA值。 另外,在处理重复值时,默认情况下,duplicates和drop_duplicates方法会保留第一个出现的值组合。如果想保留最后一个出现的值组合,可以传入take_last=True参数。例如,在一个DataFrame中,可以使用data.drop_duplicates(['k1','k2'],take_last=True)来删除重复值并保留最后一个出现的值组合。 综上所述,以上是关于Pythonpandas库进行数据预处理的一些基本操作和方法。可以根据具体需求使用相应的方法来进行数据清洗和处理。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [利用Python Pandas进行数据预处理-数据清洗](https://blog.csdn.net/YEN_CSDN/article/details/53445616)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值