Python 如何将字符串转换为datetime而不使用天

Python 如何将字符串转换为datetime而不使用天,python,mysql,pandas,Python,Mysql,Pandas,例如,数据框中的issue\u d列是字符串,df['issue\u d']=“2012年12月” 我想将字符串转换为datetime类型而不是字符串类型:2012-12,怎么做 我用 [datetime.strptime(x, '%b-%Y') for x in df.issue_d] 但我得到的结果是2012-12年 如何在没有天数的情况下获得结果,并使用mysql和sqlalchemy将其保存到数据库中?我在数据库中创建了DateTime()类型的列issue\d。 我想将df['iss

例如,数据框中的
issue\u d
列是字符串,
df['issue\u d']=“2012年12月”

我想将字符串转换为datetime类型而不是字符串类型:
2012-12
,怎么做

我用

[datetime.strptime(x, '%b-%Y') for x in df.issue_d]
但我得到的结果是2012-12年

如何在没有天数的情况下获得结果,并使用mysql和sqlalchemy将其保存到数据库中?我在数据库中创建了DateTime()类型的列issue\d。 我想将df['issue_d']插入到该表中

和一系列

series = pd.Series(["Dec-2012", "Nov-2013"])
series = pd.to_datetime(series)
series.apply(lambda x: str(x.year) + "-" + str(x.month))
你也可以使用

series.dt.to_period('M')
检查以下文档:

给定字符串“Dec-2012”,它应该返回2012-12,这里有一种方法:

从数据帧开始
df

>>> df
    issue_d
0  Dec-2012
1  Jan-2013
首先,转换为datetime,然后应用
strftime

df['issue_d'] = pd.to_datetime(df['issue_d'])
df['issue_d'] = df['issue_d'].dt.date.apply(lambda x: x.strftime('%Y-%m'))

>>> df
   issue_d
0  2012-12
1  2013-01

请注意,它现在是日期的字符串表示形式,但因为您需要格式化的日期,我认为它解决了您的问题。

这绝对是See的可能副本的可能副本,特别是答案的第二部分显示了如何使用
strftime()
和文档链接。我认为mysql不支持月-年值作为日期格式。查看文档:我希望数据类型是datetime而不是string类型。结果是string类型而不是datetime我想知道没有day的datetime对象的用例,字段的格式应该是datetime。我需要在datetime上合并两个dataframe,还需要在我进行查询时将其插入到我在数据库中创建的表中,我将对datetime执行一些操作。数据库中是否有任何现有字段仅包含数据类型为date/datetime的年-月格式?否,当我将datetime插入数据库时,它会将datetime转换为年、月和天(所有天都是01)。
datetime.datetime.strftime(datetime.datetime.strptime("DEC-2012", '%b-%Y'),'%Y-%m')
df['issue_d'] = pd.to_datetime(df['issue_d'])
df['issue_d'] = df['issue_d'].dt.date.apply(lambda x: x.strftime('%Y-%m'))

>>> df
   issue_d
0  2012-12
1  2013-01
datetime.datetime.strftime(datetime.datetime.strptime("DEC-2012", '%b-%Y'),'%Y-%m')