将熊猫系列单元格转换为字符串和日期时间对象

use*_*309 1 python type-conversion pandas datetime64

我已经对熊猫数据框进行了切片。

end_date = df[-1:]['end'] 

type(end_date) 
Out[4]: pandas.core.series.Series 

end_date 
Out[3]: 
48173   2017-09-20 04:47:59 
Name: end, dtype: datetime64[ns] 
Run Code Online (Sandbox Code Playgroud)
  1. 如何摆脱end_date的索引值48173并只获取2017-09-20 04:47:59字符串?我必须使用2017-09-20 04:47:59作为参数来调用 REST API ,所以我必须从 Pandasdatetime64系列中获取字符串。
  2. 如何摆脱 end_date 的索引值48173并只获取​​ datetime 对象 [类似的东西datetime.datetime.strptime('2017-09-20 04:47:59', '%Y-%m-%d %H:%M:%S')]。我需要它,因为稍后我将不得不检查是否'2017-09-20 04:47:59' < datetime.datetime(2017,1,9)

我只需要转换一个单元格值,而不是整列。如何进行这些转换?

Tin*_*y.D 5

看来你需要:

import pandas as pd
data = ['2017-09-20 04:47:59','2017-10-20 04:47:59','2017-09-30 04:47:59']
df = pd.DataFrame(data,columns=['end'])
df['end'] = pd.to_datetime(df['end'])
df
Run Code Online (Sandbox Code Playgroud)

df 将会:

    end
0   2017-09-20 04:47:59
1   2017-10-20 04:47:59
2   2017-09-30 04:47:59
Run Code Online (Sandbox Code Playgroud)

之后,您可以使用以下代码摆脱索引并用作“时间戳”对象:

end_date = df['end'].iloc[-1] #get last row of column end
print(type(end_date)) # pandas.tslib.Timestamp
end_date_str = end_date.strftime('%Y-%m-%d %H:%M:%S') #convert to str
print(end_date_str) # '2017-09-30 04:47:59'
print(end_date < datetime.datetime(2017,1,9)) #False
Run Code Online (Sandbox Code Playgroud)