Skip to main content
 首页 » 编程设计

python之仅绘制大型 Pandas 数据框中的唯一行

2025年05月04日16www_RR

我有一个 434300 行的 pandas 数据框,其结构如下:

       x    y        p1  p2  
1      8.0  1.23e-6  10  12 
2      7.9  4.93e-6  10  12 
3      7.8  7.10e-6  10  12 
... 
. 
... 
4576   8.0  8.85e-6  5   16 
4577   7.9  2.95e-6  5   16 
4778   7.8  3.66e-6  5   16 
... 
... 
... 
434300 ... 

关键点在于,对于每个 x,y 数据 block ,都有 不变 的 p1 和 p2。请注意,这些常量 p1、p2 的 block 具有不同的长度,因此这不仅仅是每 n 行对数据进行切片的问题。

我想在图表中绘制 p1 与 p2 的值,但只想绘制独特的点。

如果我使用以下方法绘制 p1 vs p2:

In [1]: fig=plt.figure() 
In [2]: ax=plt.subplot(111) 
In [3]: ax.plot(df['p1'],df['p2']) 
In [4]: len(ax.lines[0].get_xdata()) 
Out[4]: 434300 

我看到 matplotlib 正在绘制预期的每一行数据。

仅绘制 p1 和 p2 列中唯一点的最简洁方法是什么?

Here是一个小型示例数据集的 csv,它具有我的数据集的所有重要特征。

请您参考如下方法:

只需删除重复项并绘制:

df.drop_duplicates(how='all', columns=['p1', 'p2'])[['p1', 'p2]].plot()