ahb*_*bon 3 python datetime pandas
如何将date格式为的列转换2014-09为格式2014-09-01 00:00:00.000?以前的格式是从df['date'] = pd.to_datetime(df['date']).dt.to_period("M").
我使用df['date'] = pd.to_datetime(df['date']).dt.strftime('%Y-%m-%d %H:%M:%S.000'),但它产生一个错误:TypeError: Passing PeriodDtype data is invalid. Use data.to_timestamp() instead。我也尝试使用pd.to_datetime(df['date']).dt.strftime('%Y-%m'),它会产生相同的错误。
第一个想法是将时间段转换为时间戳Series.to_timestamp,然后使用Series.dt.strftime:
print (df)
date
0 2014-09
print (df.dtypes)
date period[M]
dtype: object
df['date'] = df['date'].dt.to_timestamp('s').dt.strftime('%Y-%m-%d %H:%M:%S.000')
print (df)
date
0 2014-09-01 00:00:00.000
Run Code Online (Sandbox Code Playgroud)
或者简单地为每个值添加相同的最后一个值:
df['date'] = df['date'].dt.to_timestamp('s').dt.strftime('%Y-%m-%d %H:%M:%S').add('.000')
print (df)
date
0 2014-09-01 00:00:00.000
Run Code Online (Sandbox Code Playgroud)
或者:
df['date'] = df['date'].dt.strftime('%Y-%m').add('-01 00:00:00.000')
print (df)
date
0 2014-09-01 00:00:00.000
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3247 次 |
| 最近记录: |