2 回答

TA貢獻(xiàn)1831條經(jīng)驗 獲得超9個贊
將to_datetime與 Series.dt.strftime 一起使用:
timefmt = "%H:%M"
test['year'] = pd.to_datetime(test['year'], errors='coerce').dt.strftime(timefmt)
print (test)
usr_id year
0 t961 00:50
1 t964 03:25
2 t335 00:55
3 t829 00:04
或者,您可以使用 Series.str.rsplit with 按最后一個拆分,并通過索引選擇第一個列表:n=1:
test['year'] = test['year'].str.rsplit(':', n=1).str[0]
print (test)
usr_id year
0 t961 00:50
1 t964 03:25
2 t335 00:55
3 t829 00:04
或通過@Akira解決方案:
test['year'] = test['year'].astype(str).str[:5]

TA貢獻(xiàn)1893條經(jīng)驗 獲得超10個贊
由于列中當(dāng)前沒有實際日期,因此您需要設(shè)置默認(rèn)日期。然后,您可以將格式傳遞給 pandas 函數(shù)。year
to_datetime
這可以在這樣的單行中完成:
test['year'] = pd.to_datetime(test['year'].apply(lambda x: '1900-01-01 '+ x),format='%Y-%m-%d %H:%M:%S')
添加回答
舉報