将数据类型float转换为日期时间格式时出错

时间:2018-09-10 18:05:14

标签: python pandas datetime

我想将下面的数据类型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?

2 个答案:

答案 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)