如何获取Pandas DataFrame的值并以原始类型(非Series)赋值给变量?
解决方法
首先你原代码里的布尔索引写法有误,正确的筛选条件应该是df['source'] == 'y',而非df['source' == df['y']],先修正这个基础问题。
要直接获取原始的Timestamp类型值,有几种简单方式:
使用
.iloc[0]提取Series的第一个元素:time = df.loc[df['source'] == 'y', 'timestamp'].iloc[0]使用
.item()方法,直接返回单个标量值:time = df.loc[df['source'] == 'y', 'timestamp'].item()使用
.squeeze()方法,当Series仅含一个元素时,会将其压缩为标量:time = df.loc[df['source'] == 'y', 'timestamp'].squeeze()
另外注意你示例数据里的2022-13-11是无效日期,实际使用时要确保timestamp列是正确的datetime类型,可先用df['timestamp'] = pd.to_datetime(df['timestamp'], errors='coerce')处理无效值。
内容的提问来源于stack exchange,提问作者user19667022
相关产品推荐
相关产品推荐

