我想将下面的数据类型float转换为datetime格式:
df
Date
0 NaN
1 NaN
2 201708.0
4 201709.0
5 201700.0
6 201600.0
Name: Cred_Act_LstPostDt_U324123, dtype: float64
pd.to_datetime(df ['Date'],format ='%Y%m.0')
ValueError:时间数据201700.0与格式'%Y%m.0'(匹配)不匹配
如何将没有月份信息的行转换为默认的yyyy01?
答案 0 :(得分:0)
使用.asType(str)创建一个包含浮点数的字符串,然后在第四个字符处拆分该字符串,并使用cat插入连字符。然后,您可以使用format ='%Y%m。
但是,如果您尝试使用不正确的月份编号(例如,月份00),这可能仍然会失败
string = df['Date'].astype(str)
s = pd.Series([string[:4], '-',string[4:6])
date = s.str.cat(sep=',')
pd.to_datetime(date.astype(str),format='%Y%m')
答案 1 :(得分:0)
您可以使用pd.Series.str.replace
来清理月份数据:
def alphaOrder(students):
mylist = []
splitter = students.split(',')
for i in splitter:
mylist.append(i)
mylist.sort(key=lambda n: split(' ')[1])
print(mylist)
alphaOrder(students)