Skip to main content
 首页 » 编程设计

python之将 Pandas 系列单元格转换为字符串和日期时间对象

2025年05月04日24cloudgamer

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

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]  
  1. 如何去掉 end_date 的索引值 48173并且只得到 2017-09-20 04:47:59字符串?我必须使用 2017-09-20 04:47:59 调用 REST API作为参数,所以我必须从 pandas datetime64 中获取字符串系列。
  2. 如何去掉 end_date 的索引值 48173并只获取​​日期时间对象[类似于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)

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

请您参考如下方法:

看来你需要:

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 

df 将是:

    end 
0   2017-09-20 04:47:59 
1   2017-10-20 04:47:59 
2   2017-09-30 04:47:59 

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

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