Pandas 数据帧中的列类型从字符串转换为日期时间格式

当我们在 Python 的 Pandas DataFrame 中处理数据时,经常会遇到时间序列数据。Panday 是一个强大的工具,可以在 Python 中处理时间序列数据,我们可能需要在给定的数据集中将字符串转换为 Datetime 格式。

在本教程中,我们将学习如何将字符串的 DataFrame 列转换为日期时间格式“dd/mm/yy”。如果日期不是所需的格式,用户就不能对其执行任何基于时间序列的操作。为了解决这个问题,我们需要将日期转换成所需的日期时间格式。

Python 中转换数据类型格式的不同方法:

在本节中,我们将讨论将 Pandas DataFrame 列的数据类型从字符串更改为日期时间的不同方法:

方法 1:使用 pandas.to_datetime()函数

在这种方法中,我们将使用“pandas.to_datetime()”函数来转换 Pandas DataFrame 列中的数据类型。

示例:


import pandas as pnd

# Creating the dataframe
data_frame = pnd.DataFrame({'Date':['12/05/2021', '11/21/2018', '01/12/2020'],
                'Event':['Music- Dance', 'Poetry- Songs', 'Theatre- Drama'],
                'Cost':[15400, 7000, 25000]})

# Print the dataframe
print ("The data is: ") 
print (data_frame)

# Here, we are checking the data type of the 'Date' column
data_frame.info()

输出:

The data is: 
         Date           Event                     Cost
0  12/05/2021    Music- Dance  15400
1  11/21/2018   Poetry- Songs   7000
2  01/12/2020  Theatre- Drama  25000
 RangeIndex: 3 entries, 0 to 2
Data columns (total 3 columns):
 #   Column  Non-Null Count  Dtype 
---  ------  --------------  ----- 
 0   Date    3 non-null      object 

1   Event   3 non-null      object
 2   Cost    3 non-null      int64 
dtypes: int64(1), object(2)
memory usage: 200.0+ bytes 

在这里,在输出中,我们可以看到数据帧中“日期”列的数据类型是“对象”,这意味着它是一个字符串。现在,我们将使用“pnd.to_datetime()”函数将数据类型转换为日期时间格式:


import pandas as pnd

# Creating the dataframe
data_frame = pnd.DataFrame({'Date':['12/05/2021', '11/21/2018', '01/12/2020'],
                'Event':['Music- Dance', 'Poetry- Songs', 'Theatre- Drama'],
                'Cost':[15400, 7000, 25000]})

# Print the dataframe
print ("The data is: ") 
print (data_frame)

# For converting the 'Date' column of DataFrame into datetime format
data_frame['Date'] = pnd.to_datetime(data_frame['Date'])

# Here, we are checking the data type of the 'Date' column
data_frame.info()

输出:

The data is: 
         Date           Event                     Cost
0  12/05/2021    Music- Dance  15400
1  11/21/2018   Poetry- Songs   7000
2  01/12/2020  Theatre- Drama  25000
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 3 columns):
 #   Column  Non-Null Count  Dtype  
 ---  ------  --------------  -----         
 0   Date    3 non-null      datetime64[ns] 

1   Event   3 non-null      object        
 2   Cost    3 non-null      int64         
dtypes: datetime64[ns](1), int64(1), object(1)
memory usage: 200.0+ bytes

现在,我们可以看到数据帧中“数据”列的格式已经更改为日期时间格式。

方法 2:使用 DataFrame.astype()函数。

在这种方法中,我们将使用“DataFrame.astype()”函数来转换 Pandas DataFrame 列中的数据类型。

示例:


import pandas as pnd

# Creating the dataframe
data_frame = pnd.DataFrame({'Date':['12/05/2021', '11/21/2018', '01/12/2020'],
                'Event':['Music- Dance', 'Poetry- Songs', 'Theatre- Drama'],
                'Cost':[15400, 7000, 25000]})

# Print the dataframe
print ("The data is: ") 
print (data_frame)

# Here, we are checking the data type of the 'Date' column
data_frame.info()

输出:

The data is: 
         Date           Event                     Cost
0  12/05/2021    Music- Dance  15400
1  11/21/2018   Poetry- Songs   7000
2  01/12/2020  Theatre- Drama  25000
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 3 columns):
 #   Column  Non-Null Count  Dtype 
---  ------  --------------  ----- 
 0   Date    3 non-null      object 

1   Event   3 non-null      object
 2   Cost    3 non-null      int64 
dtypes: int64(1), object(2)
memory usage: 200.0+ bytes

在这里,在输出中,我们可以看到数据帧中“日期”列的数据类型是“对象”,这意味着它是一个字符串。现在,我们将使用“数据帧类型()”函数将数据类型转换为日期时间格式:


import pandas as pnd

# Creating the dataframe
data_frame = pnd.DataFrame({'Date':['12/05/2021', '11/21/2018', '01/12/2020'],
                'Event':['Music- Dance', 'Poetry- Songs', 'Theatre- Drama'],
                'Cost':[15400, 7000, 25000]})

# Print the dataframe
print ("The data is: ") 
print (data_frame)
# For converting the 'Date' column of DataFrame into datetime format
data_frame['Date'] = data_frame['Date'].astype('datetime64[ns]')

# Here, we are checking the data type of the 'Date' column
data_frame.info()

输出:

The data is: 
         Date           Event   Cost
0  12/05/2021    Music- Dance  15400
1  11/21/2018   Poetry- Songs   7000
2  01/12/2020  Theatre- Drama  25000
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 3 columns):
 #   Column  Non-Null Count  Dtype         
---  ------  --------------  -----         
 0   Date    3 non-null      datetime64[ns] 

1   Event   3 non-null      object        
 2   Cost    3 non-null      int64         
dtypes: datetime64[ns](1), int64(1), object(1)
memory usage: 200.0+ bytes

现在,我们可以看到,通过使用 data_frame[‘Date’],DataFrame 中“Data”列的格式已更改为 datetime 格式。astype(‘datetime64[ns])。

方法 3:

假设我们在 DataFrame 列中有一个“yymmdd”格式的日期,我们必须将其从字符串转换为日期时间格式。

示例:


import pandas as pnd

# Now, we will initialize the nested list with Dataset
play_list = [['210302', 67000], ['210901', 62000], ['210706', 61900],
            ['210402', 59000], ['210802', 74000], 
            ['210804', 54050], ['210109', 57650], ['210509', 67300], ['210209', 76600]]

# Creating a pandas DataFrame
data_frame = pnd.DataFrame(play_list,columns = ['Date','Patient Number'])

# Print the dataframe
print ("The data is: ") 
print (data_frame)

# Here, we are checking the data type of the 'Date' column
print (data_frame.dtypes)

输出:

The data is: 
     Date          Patient Number
0  210302           67000
1  210901           62000
2  210706           61900
3  210402           59000
4  210802           74000
5  210804           54050
6  210109           57650
7  210509           67300
8  210209           76600
 Date              object 

Patient Number     int64
dtype: object

这里,在输出中,我们可以看到数据帧中“日期”列的数据类型是“对象”,也就是说,它是字符串。现在,我们将使用“data frame[‘ Date ‘]= PND . to datetime(data _ frame[‘ Date ‘],format = ‘%y%m%d ‘)”函数将数据类型转换为 datetime 格式。


import pandas as pnd

# Now, we will initialize the nested list with Dataset
play_list = [['210302', 67000], ['210901', 62000], ['210706', 61900], 
            ['210402', 59000], ['210802', 74000], 
            ['210804', 54050], ['210109', 57650], ['210509', 67300], ['210209', 76600]]

# creating a pandas dataframe
data_frame = pnd.DataFrame(play_list,columns = ['Date','Patient Number'])

# Print the dataframe
print ("The data is: ") 
print (data_frame)

# For converting the 'Date' column of DataFrame into datetime format
data_frame['Date'] = pnd.to_datetime(data_frame['Date'], format = '%y%m%d')

# Here, we are checking the data type of the 'Date' column
print (data_frame.dtypes)

输出:

The data is: 
     Date         Patient Number
0  210302           67000
1  210901           62000
2  210706           61900
3  210402           59000
4  210802           74000
5  210804           54050
6  210109           57650
7  210509           67300
8  210209           76600
 Date              datetime64[ns] 

Patient Number             int64
dtype: object

在上面的代码中,我们通过使用“PND . to datetime(data frame[‘ Date ‘],format = ‘%y%m%d ‘)”函数,将“Date”列的数据类型从“object”更改为“datetime64[ns]”。

方法 4:

我们可以使用“pandas.to_datetime()”函数将多列从“string”转换为“datetime”格式,这意味着“YYYYMMDD”格式。


# Initializing the nested list with Data set
Dataset_list = [['20210612', 54000, '20210812'], 
               ['20210814', 65000, '20210614'], 
               ['20210316', 71500, '20210316'], 
               ['20210519', 45000, '20210119'], 
               ['20210221', 98000, '20210221'], 
               ['20210124', 23000, '20210724'], 
               ['20210929', 12000, '20210924']] 

# creating a pandas dataframe
data_frame = pnd.DataFrame(
  Dataset_list, columns = ['Treatment_starting_Date',
                         'Patients Number',
                         'Treatment_ending_Date'])

# Print the dataframe
print ("The data is: ") 
print (data_frame)

# Here, we are checking the data type of the 'Date' column
print (data_frame.dtypes)

输出:

The data is: 
  Treatment_starting_Date   Patients Number     Treatment_ending_Date
0   20210612                54000                20210812
1   20210814                65000                20210614
2   20210316                71500                20210316
3   20210519                45000                20210119
4   20210221                98000                20210221
5   20210124                23000                20210724
6   20210929                12000                20210924
 Treatment_starting_Date    object 

Patients Number             int64
 Treatment_ending_Date      object 

dtype: object

在这里,在输出中,我们可以看到数据帧中“日期”列的数据类型是“对象”,这意味着它是一个字符串。现在,我们将使用“pnd.to_datetime(data_frame[”],format = ‘%y%m%d ‘)函数将数据类型“Date”列转换为 datetime 格式。


import pandas as pnd

# Initializing the nested list with Data set
Dataset_list = [['20210612', 54000, '20210812'],
               ['20210814', 65000, '20210614'],
               ['20210316', 71500, '20210316'],
               ['20210519', 45000, '20210119'],
               ['20210221', 98000, '20210221'],
               ['20210124', 23000, '20210724'],
               ['20210929', 12000, '20210924']]

# creating a pandas dataframe
data_frame = pnd.DataFrame(
  Dataset_list, columns = ['Treatment_starting_Date',
                         'Patients Number',
                         'Treatment_ending_Date'])

# Print the dataframe
print ("The data is: ") 
print (data_frame)

# For converting the multiple columns of DataFrame into datetime format
data_frame['Treatment_starting_Date'] = pnd.to_datetime(
                          data_frame['Treatment_starting_Date'],
                          format = '%Y%m%d'
)
data_frame['Treatment_ending_Date'] = pnd.to_datetime(
                          data_frame['Treatment_ending_Date'],
                          format = '%Y%m%d'
)

# Here, we are checking the data type of the 'Date' column
print (data_frame.dtypes)

输出:

The data is: 
  Treatment_starting_Date  Patients Number Treatment_ending_Date
0                20210612            54000              20210812
1                20210814            65000              20210614
2                20210316            71500              20210316
3                20210519            45000              20210119
4                20210221            98000              20210221
5                20210124            23000              20210724
6                20210929            12000              20210924
 Treatment_starting_Date    datetime64[ns] 

Patients Number                     int64
 Treatment_ending_Date      datetime64[ns] 

dtype: object

在上面的输出中,我们可以看到“治疗开始日期”和“治疗结束日期”的数据类型已经通过使用“pnd.to_datetime()”函数更改为日期时间格式。

结论

在本教程中,我们学习了在 Python 中将 Pandas DataFrame 的列类型从字符串转换为日期时间的不同方法。


原创文章,作者:AE2NK,如若转载,请注明出处:https://www.506064.com/n/127496.html

相关推荐

  • 如何避免字符串长度无效?

    一、了解字符串长度的定义 首先我们需要了解,字符串长度是指字符串中所含的字符数量。对于英文字符集来说,一个字符占用一个字节的存储空间;而对于汉字等非英文字符集来说,一个字符通常会占…

    编程 2024-12-04
  • c语言结构倒置,c语言倒置字符串

    本文目录一览: 1、C语言如何利用指针,将数组倒置啊 2、C语言将一个单链表倒置 3、急求用c语言编写:一个字符串编写程序将其倒置,如:”abcd” 改为:”dcba”,附上注释。…

    编程 2024-10-29
  • PostgreSQL concat——拼接字符串的灵活利器

    一、concat的基本用法 PostgreSQL concat 是用于拼接字符串的函数,它的语法非常简单,只有一个参数: concat (string [, string] ……

    编程 2024-12-19
  • Python获取字符串中子字符串的索引位置

    一、基础知识 在Python中,字符串是一种非常重要的数据类型。字符串是一组有序的字符集合,在代码中被用于表示文本。把多个字符串拼接在一起叫做“字符串连接”,Python中可以使用…

    编程 2024-11-19
  • 使用Python将时间转换为日期

    一、Python中时间的表示和格式 在Python中,时间可以使用time模块进行表示。time模块中最常用的函数是time(),其返回的是从1970年1月1日午夜开始经过的秒数。…

    编程 2024-11-20
  • Python字符串处理函数:print和split

    一、print函数 在Python中,print()函数是将字符串输出到控制台的最基础的方法。我们可以用print()函数输出字符串自己定义的内容,也可以输出变量中存储的内容。 p…

    编程 2025-01-07
  • Java工程师:如何将数组转换为List?

    在Java中,数组和集合(List)是非常常用的数据结构,但是在不同的场景下,我们需要在数组和集合之间来回切换。最常见的就是需要将数组转换为List,便于我们进行集合操作。在本篇文…

    编程 2024-11-25
  • python获取的当前日期20221122,python获取当前日期前几天

    本文目录一览: 1、python怎么调用时间 2、python如何只获取日期 3、python获取日期的方法有哪些? 4、python中怎样获得当前时间 5、python 怎么获取…

    编程 2024-12-31
  • Python列表转换为数组的方法

    一、Python列表和数组的区别 在开始介绍Python列表转换为数组的方法之前,需要先了解Python列表和数组的区别。Python列表是一种动态类型的数据结构,可以存储不同类型…

    编程 2024-12-12
  • RDD转换为DataFrame

    一、背景介绍 RDD(Resilient Distributed Datasets)是Spark中最基本的数据抽象。它可以理解为带有分布式的元素集合,分布式是指存储在多个计算机节点…

    编程 2024-11-23