首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何格式化1月-2018年,即如何获得python中的mon-年份格式

如何格式化1月-2018年,即如何获得python中的mon-年份格式
EN

Stack Overflow用户
提问于 2018-10-14 06:35:14
回答 1查看 901关注 0票数 0

我正在尝试将熊猫数据栏的数据类型从string更改为datetype。我要求的格式是元年(如:1月-2018年)。我试过:

代码语言:javascript
复制
dataframe['date_col'] = pd.to_datetime(dataframe['date_col'], format='%b-%Y')

我收到了以下警告,我得到的输出是类似于(2018-01-01)格式的年度月日格式。

main:1: SettingWithCopyWarning:值试图在来自DataFrame的片的副本上设置。尝试使用.locrow_indexer,col_indexer = value代替 请参阅文档中的注意事项:http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy

如何获得我想要的输出格式,即1月-2018年。

EN

回答 1

Stack Overflow用户

发布于 2018-10-14 12:10:50

datetime值不作为字符串存储!

它们在内部存储为整数,必须是完整的:例如,datetime值必须包括日期、月份和年份。因此,您必须选择如下之一:

  1. 使用datetime dtype存储您的系列,并查看默认表示形式,即在显示或打印该系列时使用2018-01-01
  2. 使用object dtype存储您的系列,并选择您选择的表示形式。

没有的“中介”选项来获得这两个世界的最佳效果。

datetime 选项1:

只需像现在一样使用pd.to_datetime即可。下面是一个演示:

代码语言:javascript
复制
df = pd.DataFrame({'date_col': ['Jan-2018', 'Oct-2018', 'Dec-2018']})

df['date_col'] = pd.to_datetime(df['date_col'], format='%b-%Y')

print(df, df['date_col'].dtype)

    date_col
0 2018-01-01
1 2018-10-01
2 2018-12-01 datetime64[ns]

object 选项2:

好吧,这正是你的输入。什么都不做。您的输入格式'%b-%Y'已经在表单'Jan-2018'中。

关于SettingWithCopyWarning的注记

此警告与pd.to_datetime无关。很可能,您的dataframe是另一个数据帧的一个友好的部分,因此Pandas显示了一个警告,如果不显式复制数据,您可能会看到意外的结果。另见How to deal with SettingWithCopyWarning in Pandas?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52800107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档