Ale*_*leB 1 python date pandas
在熊猫中,有没有一种方法可以将我的列日期转换为“ 1997-01-31”,格式为“ 199701”,而不包含有关日期的任何信息?
我尝试了以下形式的解决方案:
df['DATE'] = df['DATE'].apply(lambda x: datetime.strptime(x, '%Y%m'))
但我收到此错误:'ValueError:时间数据'1997-01-31'与格式'%Y%m'不匹配
可能的原因是我没有在格式中包括日期。有没有更好的方法可以将熊猫的YYYY-MM_DD格式传递给YYYYMM?
一种方法是将日期转换为日期时间,然后使用strftime。请注意,您确实失去了日期的日期时间功能
df = pd.DataFrame({'date':['1997-01-31' ]})
df['date'] = pd.to_datetime(df['date'])
df['date'] = df['date'].dt.strftime('%Y%m')
date
0 199701
Run Code Online (Sandbox Code Playgroud)
datetime
如果数据足够干净(没有像'foo'
或 之类的错误字符串'001231'
),可能不需要进行转换:
df = pd.DataFrame({'date':['1997-01-31', '1997-03-31', '1997-12-18']})
df['date'] = [''.join(x.split('-')[0:2]) for x in df.date]
# date
#0 199701
#1 199703
#2 199712
Run Code Online (Sandbox Code Playgroud)
或者如果你有null
价值观:
df['date'] = df.date.str.replace('-', '').str[0:6]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
856 次 |
最近记录: |