如何提取Voltage最大值对应的纯Timestamp日期时间值?
解决方法:提取纯日期时间值
嘿,我来帮你搞定这个问题!首先先修正你代码里的小语法错误,然后再教你怎么拿到想要的纯日期时间值。
第一步:修正原代码的语法问题
你写的max_time那行代码括号位置不对,而且新版本pandas里的参数是sheet_name(旧版sheetname虽兼容但推荐用新参数),正确写法如下:
import pandas as pd # 别忘了导入pandas哦 file = pd.read_excel(open("file name",'rb'), sheet_name="data") max_vol = file["Voltage"].max() # 修正loc的筛选语法,正确匹配Voltage等于最大值的行 max_time_series = file.loc[file["Voltage"] == max_vol, "Timestamp"]
第二步:提取纯日期时间值
你现在打印max_time_series得到的是一个Pandas Series对象,所以会附带索引、列名和数据类型。要拿到纯日期时间值,分两种场景处理:
场景1:只有一行数据对应最大值
直接用.iloc[0]提取唯一的目标值,要是需要转成指定格式的字符串,就用strftime():
# 获取datetime类型的原始值 max_time = max_time_series.iloc[0] # 转成你想要的字符串格式 max_time_str = max_time.strftime("%Y-%m-%d %H:%M:%S") print(max_time_str) # 输出:2018-03-03 04:00:00
场景2:有多行数据对应最大值
如果Voltage列存在多个最大值,你可以把所有对应的Timestamp转成列表统一处理:
# 获取所有datetime对象的列表 max_time_list = max_time_series.tolist() # 批量转成字符串格式 max_time_str_list = [time.strftime("%Y-%m-%d %H:%M:%S") for time in max_time_list] print(max_time_str_list)
内容的提问来源于stack exchange,提问作者Saurav Sahay
相关产品推荐
相关产品推荐

