如何将字符串转换为仅包含年份数字的日期?
How can convert string to date which only contains year number?
创建一个第一列为文本的数据框。
import pandas as pd
values = {'dates': ['2019','2020','2021'],
'price': [11,12,13]
}
df = pd.DataFrame(values, columns = ['dates','price'])
检查数据类型:
df.dtypes
dates object
price int64
dtype: object
将列 dates
中的类型转换为类型 dates
。
df['dates'] = pd.to_datetime(df['dates'], format='%Y')
df
dates price
0 2019-01-01 11
1 2020-01-01 12
2 2021-01-01 13
我想将 dates
列中的类型转换为 date
和以下格式的日期----仅包含年份:
dates price
0 2019 11
1 2020 12
2 2021 13
怎样才能达到目标?
如果您为您的列选择 datetime
格式,它可能会从中受益。您在列(“2019-01-01”)中看到的是 datetime
对象的表示。这里真正的问题是,为什么你需要一个 datetime
对象?
其实我不关心datetime
类型:
使用字符串 ('2019'),或优先使用整数 (2019),这样您就可以执行排序、计算等操作
我需要 datetime
类型,但我真的只想看到年份:
使用 style
格式化您的列,同时保留基础类型:
df.style.format({'dates': lambda t: t.strftime('%Y')})
这将允许您在保持类型的同时拥有干净的视觉格式
创建一个第一列为文本的数据框。
import pandas as pd
values = {'dates': ['2019','2020','2021'],
'price': [11,12,13]
}
df = pd.DataFrame(values, columns = ['dates','price'])
检查数据类型:
df.dtypes
dates object
price int64
dtype: object
将列 dates
中的类型转换为类型 dates
。
df['dates'] = pd.to_datetime(df['dates'], format='%Y')
df
dates price
0 2019-01-01 11
1 2020-01-01 12
2 2021-01-01 13
我想将 dates
列中的类型转换为 date
和以下格式的日期----仅包含年份:
dates price
0 2019 11
1 2020 12
2 2021 13
怎样才能达到目标?
如果您为您的列选择 datetime
格式,它可能会从中受益。您在列(“2019-01-01”)中看到的是 datetime
对象的表示。这里真正的问题是,为什么你需要一个 datetime
对象?
其实我不关心datetime
类型:
使用字符串 ('2019'),或优先使用整数 (2019),这样您就可以执行排序、计算等操作
我需要 datetime
类型,但我真的只想看到年份:
使用 style
格式化您的列,同时保留基础类型:
df.style.format({'dates': lambda t: t.strftime('%Y')})
这将允许您在保持类型的同时拥有干净的视觉格式