Pandas中将列类型从字符串转换为日期时间格式

在Pandas中处理数据时,遇到时间序列数据并不罕见,我们知道Pandas是在python中处理时间序列数据的非常有用的工具。

让我们看看如何将字符串的字符串列(dd/mm/yyyy格式)转换为datetime格式。如果日期的格式不正确,我们将无法对日期执行任何基于时间序列的操作。为了能够使用它,我们需要将数据转换为日期时间格式。

使用pd.to_datetime()函数将Pandas的字符串列类型转换为datetime格式

# importing pandas as pd
import pandas as pd
 
# Creating the dataframe
df = pd.DataFrame({'Date':['11/8/2011', '04/23/2008', '10/2/2019'],
                'Event':['Music', 'Poetry', 'Theatre'],
                'Cost':[10000, 5000, 15000]})
 
# Print the dataframe
print(df)
 
# Now we will check the data type 
# of the 'Date' column
df.info()

在这里插入图片描述
在这里插入图片描述
正如我们在输出中看到的,“Date”列的数据类型是object,即string。现在我们将使用pd.to_datetime()函数将其转换为datetime格式。

# convert the 'Date' column to datetime format
df['Date']= pd.to_datetime(df['Date'])

# Check the format of 'Date' column
df.info()

在这里插入图片描述
正如我们在输出中所看到的,“Date”列的格式已更改为datetime格式。

使用DataFrame.astype()函数将Pandas字符串列类型从字符串转换为日期时间格式

# importing pandas as pd
import pandas as pd

# Creating the dataframe
df = pd.DataFrame({'Date':['11/8/2011', '04/23/2008', '10/2/2019'],
				'Event':['Music', 'Poetry', 'Theatre'],
				'Cost':[10000, 5000, 15000]})

# Print the dataframe
print(df)

# Now we will check the data type
# of the 'Date' column
df.info()

在这里插入图片描述
在这里插入图片描述
正如我们在输出中看到的,“Date”列的数据类型是object,即string。现在我们将使用DataFrame.astype()函数将其转换为日期时间格式。

# convert the 'Date' column to datetime format
df['Date'] = df['Date'].astype('datetime64[ns]')
 
# Check the format of 'Date' column
df.info()

在这里插入图片描述
正如我们在输出中所看到的,“Date”列的格式已更改为datetime格式。

如果数据框列是’yymmdd’格式,我们必须将其转换为’yyyymmdd’格式

# importing pandas library
import pandas as pd

# Initializing the nested list with Data set
player_list = [['200712',50000],['200714',51000],['200716',51500],
			['200719',53000],['200721',54000],
			['200724',55000],['200729',57000]]

# creating a pandas dataframe
df = pd.DataFrame(player_list,columns=['Dates','Patients'])

# printing dataframe 
print(df)
print()

# checking the type 
print(df.dtypes)

在这里插入图片描述

# converting the string to datetime format 
df['Dates'] = pd.to_datetime(df['Dates'], format='%y%m%d') 
 
# printing dataframe 
print(df)
print()
 
print(df.dtypes)

在这里插入图片描述
在上面的示例中,我们将列“Dates”的数据类型从“object”更改为“datetime64[ns]”,格式从“yymmdd”更改为“yyyymmdd”。

使用pandas.to_datetime()从字符串数据格式‘yyyymmdd’转换到日期格式

# importing pandas library
import pandas as pd

# Initializing the nested list with Data set
player_list = [['20200712',50000,'20200812'],
			['20200714',51000,'20200814'],
			['20200716',51500,'20200816'],
			['20200719',53000,'20200819'],
			['20200721',54000,'20200821'],
			['20200724',55000,'20200824'],
			['20200729',57000,'20200824']]

# creating a pandas dataframe
df = pd.DataFrame(
player_list,columns = ['Treatment_start',
						'No.of Patients',
						'Treatment_end'])

# printing dataframe 
print(df)
print()

# checking the type 
print(df.dtypes)

在这里插入图片描述

# converting the string to datetime
# format in multiple columns
df['Treatment_start'] = pd.to_datetime(
                          df['Treatment_start'], 
                          format='%Y%m%d'
) 
df['Treatment_end'] = pd.to_datetime(
                          df['Treatment_end'], 
                          format='%Y%m%d'
) 
 
 
# printing dataframe 
print(df)
print()
 
print(df.dtypes)

在这里插入图片描述
在上面的例子中,我们将列“Treatment_start”和“Treatment_end”的数据类型从“object”更改为“datetime64[ns]”类型。

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值