You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按指定列值切割Pandas DataFrame?实验数据截取报错求助

正确的DataFrame时间范围切割方法

你之前的代码df.loc[df['ElapsedTime'] == 100]只筛选了恰好等于100秒的行,而实验数据的时间大概率是连续浮点值,或者没有刚好等于100的记录,导致返回的DataFrame是空的(对应错误里的(0, 5)形状),但你绘图用的y还是原数据的全量((973088,)形状),所以出现维度不匹配的错误。

正确的做法是筛选0到100秒之间的所有数据,有两种常用方法:

方法一:布尔索引直接筛选

用小于等于100的条件过滤所有行,这是最直观的方式:

# 筛选ElapsedTime ≤ 100的所有数据
filtered_df = df.loc[df['ElapsedTime'] <= 100]

# 绘图时使用过滤后的数据
import matplotlib.pyplot as plt
plt.plot(filtered_df['ElapsedTime'], filtered_df['你的Y列名称'])
plt.show()

方法二:基于索引切片(时间严格递增时适用)

如果你的ElapsedTime是严格递增的(实验数据通常都是),可以先找到第一个超过100秒的行索引,再切片获取前100秒数据,效率更高:

# 找到第一个ElapsedTime > 100的行索引
cutoff_idx = df['ElapsedTime'].gt(100).idxmax()
# 截取从开头到该索引之前的所有行
filtered_df = df.iloc[:cutoff_idx]

# 绘图示例
plt.plot(filtered_df['ElapsedTime'], filtered_df['你的Y列名称'])
plt.show()

内容的提问来源于stack exchange,提问作者hi-bye125

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 06:59:58