我试图将pandas数据帧中列的数据类型从string更改为datetype。我要求的格式是周一(例如:2018年1月)。我试过:
dataframe['date_col'] = pd.to_datetime(dataframe['date_col'], format='%b-%Y')
我收到了以下警告,我得到的输出格式是year-month-day类似(2018-01-01)。在
main:1: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,col_indexer] = value instead
See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
如何得到我想要的输出格式,是2018年1月。在
datetime
值不是作为字符串存储的!它们在内部以整数形式存储,必须是完整的:例如,
datetime
值必须包含日、月和年。因此,您必须选择以下选项之一:datetime
dtype存储序列,并在显示或打印序列时查看默认表示形式,即2018-01-01
。在object
dtype存储序列并选择所选的表示形式。在有没有的“中间人”选择,可以两全其美。在
选项1:
datetime
使用
pd.to_datetime
就可以了。下面是一个演示:{>
好吧,这正是你的输入。什么都不做。您的输入格式
'%b-%Y'
已经是'Jan-2018'
的格式。在关于使用copywarning进行设置的注意事项
此警告与
pd.to_datetime
无关。很可能您的dataframe
是另一个数据帧的一个非正常片段,因此Pandas显示一个警告,如果您不显式地复制一个数据帧,您可能会看到意外的结果。另请参见How to deal with SettingWithCopyWarning in Pandas?相关问题 更多 >
编程相关推荐