pandas进行时间数据的转换和计算时间差并提取年月日

  • Post category:Python

下面是关于pandas进行时间数据的转换和计算时间差并提取年月日的一些方法和实例:

转换时间数据

字符串格式转日期格式

可以使用pandas的to_datetime()方法将字符串格式的时间数据转换为日期格式,常见的字符串时间格式有:

  • ‘%Y-%m-%d %H:%M:%S’
  • ‘%Y/%m/%d %H:%M:%S’
  • ‘%Y.%m.%d %H:%M:%S’
  • ‘%Y-%m-%d’
  • ‘%Y/%m/%d’
  • ‘%Y.%m.%d’

使用示例:

import pandas as pd

# 定义一个时间字符串
time_string = '2010-01-01 12:00:00'

# 转换为日期格式
date_time = pd.to_datetime(time_string)

# 输出日期格式时间数据
print(date_time)

输出结果:

2010-01-01 12:00:00

时间戳转日期格式

可以使用pandas的to_datetime()方法将时间戳格式的时间数据转换为日期格式,常见的时间戳格式有:

  • 10位或13位的时间戳,如:1617730680、1617730803000

使用示例:

import pandas as pd

# 定义时间戳
timestamp = 1617730680

# 转换为日期格式
date_time = pd.to_datetime(timestamp, unit='s')

# 输出日期格式时间数据
print(date_time)

输出结果:

2021-04-06 15:51:20

计算时间差

可以使用pd.Timedelta()方法计算时间差,常见的时间差格式有:

  • 天:pd.Timedelta(days=3)
  • 小时:pd.Timedelta(hours=5)
  • 分钟:pd.Timedelta(minutes=30)
  • 秒:pd.Timedelta(seconds=10)
  • 毫秒:pd.Timedelta(milliseconds=500)
  • 微秒:pd.Timedelta(microseconds=1000)

使用示例:

import pandas as pd

# 定义两个时间
start_time = pd.to_datetime('2021-01-01 00:00:00')
end_time = pd.to_datetime('2021-01-02 12:00:00')

# 计算时间差
time_difference = end_time - start_time

# 输出时间差
print(time_difference)

输出结果:

1 days 12:00:00

提取年月日

使用pandas.Series.dt方法可以方便地提取日期格式数据中的年份、月份和日期信息。常用的方法有:

  • .dt.year:提取年份信息
  • .dt.month:提取月份信息
  • .dt.day:提取日期信息

使用示例:

import pandas as pd

# 定义一个时间字符串
time_string = '2010-01-01 12:00:00'

# 转换为日期格式
date_time = pd.to_datetime(time_string)

# 提取年份、月份、日期信息
year = date_time.dt.year
month = date_time.dt.month
day = date_time.dt.day

# 输出年份、月份、日期信息
print('年份:', year)
print('月份:', month)
print('日期:', day)

输出结果:

年份: 2010
月份: 1
日期: 1

另外还可以使用pandas.Series.dt.date方法将日期格式数据转换为日期格式字符串,如:

import pandas as pd

# 定义一个时间字符串
time_string = '2010-01-01 12:00:00'

# 转换为日期格式
date_time = pd.to_datetime(time_string)

# 提取日期信息并转换为日期格式字符串
date = date_time.dt.date

# 输出日期格式字符串
print(date)

输出结果:

2010-01-01

以上就是关于pandas进行时间数据的转换和计算时间差并提取年月日的攻略,希望能对你有所帮助。