我的数据帧有一个DOB
列(示例格式1/1/2016
),默认情况下转换为Pandas数据类型“object”。
使用< code > df[' DOB ']= PD . to _ datetime(df[' DOB '])将此转换为日期格式,日期将转换为:< code>2016-01-26,其< code>dtype为:< code>datetime64[ns]。
现在,我想将此日期格式转换为< code>01/26/2016或任何其他通用日期格式。我该怎么做?
(无论我尝试什么方法,它总是以< code>2016-01-26格式显示日期。)
之间是有区别的
所以问题是:如何在不改变数据/数据类型本身的情况下,达到我的数据的适当表示?
答案如下:
id
和类
属性用于进一步的CSS样式 - 你可以或可能不会使用它们),使用样式。样式设置不会更改数据帧列的数据/数据类型。
现在我向您展示如何在Jupyter笔记本中找到它-有关超文本标记语言文件形式的演示文稿,请参阅本答案末尾的注释。
我假设您的列< code>DOB已经具有< code>datetime64类型(您已经表明您知道如何访问它)。我准备了一个简单的dataframe(只有一列)向您展示一些基本的样式:
> < li>
未设计风格:
df
DOB
0 2019-07-03
1 2019-08-03
2 2019-09-03
3 2019-10-03
>
将其样式设置为mm/dd/yyyy
:
df.style.format({"DOB": lambda t: t.strftime("%m/%d/%Y")})
DOB
0 07/03/2019
1 08/03/2019
2 09/03/2019
3 10/03/2019
> < li>
将其样式化为< code>dd-mm-yyyy:
df.style.format({"DOB": lambda t: t.strftime("%d-%m-%Y")})
DOB
0 03-07-2019
1 03-08-2019
2 03-09-2019
3 03-10-2019
小心点!< br >返回的对象不是dataframe —它是< code>Styler类的对象,因此不要将其赋回< code>df:
不要这样做:
df = df.style.format({"DOB": lambda t: t.strftime("%m/%d/%Y")}) # Don't do this!
(每个数据帧都有其Styler对象,可通过其< code >访问。style属性,我们更改了这个< code>df.style对象,而不是dataframe本身。)
问题和答案:
>
问:为什么将 Styler 对象(或返回该对象的表达式)用作 Jupyter 笔记本单元格中的最后一个命令,显示(带样式的)表,而不是 Styler 对象本身?
答:因为每个Styler对象都有一个回调方法._repr_html_()
,它返回一个超文本标记语言代码来渲染你的数据帧(作为一个漂亮的超文本标记语言表)。
Jupyter 笔记本 IDE 会自动调用此方法来呈现具有此方法的对象。
注意:
您不需要Jupyter笔记本来进行样式设置(即,在不更改其数据/数据类型的情况下很好地输出数据帧)。
如果您想获得带有HTML代码的字符串(例如,用于在Web上发布格式化的数据帧,或者简单地以HTML格式显示表格),Styler对象也有一个方法< code>render():
df_styler = df.style.format({"DOB": lambda t: t.strftime("%m/%d/%Y")})
HTML_string = df_styler.render()
更改格式但不更改类型:
df['date'] = pd.to_datetime(df["date"].dt.strftime('%Y-%m'))
如果需要将< code>datetime转换为其他格式,可以使用< code>dt.strftime(但请注意,列的< code>dtype将是< code > object (< code > string ):
import pandas as pd
df = pd.DataFrame({'DOB': {0: '26/1/2016', 1: '26/1/2016'}})
print (df)
DOB
0 26/1/2016
1 26/1/2016
df['DOB'] = pd.to_datetime(df.DOB)
print (df)
DOB
0 2016-01-26
1 2016-01-26
df['DOB1'] = df['DOB'].dt.strftime('%m/%d/%Y')
print (df)
DOB DOB1
0 2016-01-26 01/26/2016
1 2016-01-26 01/26/2016
问题内容: DOB列样本值的格式- 默认情况下会转换为对象,如下所示 转换为日期格式 日期转换为 是 现在,我想将此日期格式转换为任何其他通用日期格式或。我该怎么做? 无论我尝试哪种方法,它总是以格式显示日期。 问题答案: 如果需要转换为其他格式,可以使用(但请注意,列的则为):
如何将此日期类型“Thu Feb 02 12:00:00 GMT-12:00 2012”更改为另一个日期类型“YYYY-MM-DD HH:MM:SS”?如果“Thu Feb 02 12:00:00 GMT-12:00 201 2”为字符串类型,如何转换“YYYY-MM-DD HH:MM:SS”的日期类型? java代码: 输出为字符串类型。我想获得日期类型输出,所以我添加了以下代码。
问题内容: 当使用日志包时,Go输出类似 如何将日期和时间格式更改为类似的格式?示例(操场链接): 问题答案: 就像yed posterior所说,您可以通过实现write函数来定义自定义io.Writer。您可能还想做一个log.SetFlags(0)来完全控制。这是一个更改日期格式以及添加一些日志级别信息的示例。 输出: 2016-03-21T19:54:28.563Z [DEBUG]这已被记
主要内容:日期格式化符号,Python处理,Pandas处理当进行数据分析时,我们会遇到很多带有日期、时间格式的数据集,在处理这些数据集时,可能会遇到日期格式不统一的问题,此时就需要对日期时间做统一的格式化处理。比如“Wednesday, June 6, 2020”可以写成“6/6/20”,或者写成“06-06-2020。 日期格式化符号 在对时间进行格式化处理时,它们都有固定的表示格式,比如小时的格式化符号为 ,分钟简写为 ,秒简写为 。下表对常用的日期
问题内容: 我需要使用Java更改日期格式 问题答案: 如何使用从一种日期格式转换为另一种日期格式: