Python Pandas:根据行间比较选择行

时间:2015-06-22 18:18:48

标签: python indexing pandas

在下面的数据框中,第一列是偶尔具有非唯一值的索引。

|   | col1 |
|---|------|
| A |  120 |
| A |   90 |
| A |   80 |
| B |   80 |
| B |   50 |
| C |  120 |
| D |  150 |
| D |  150 |

我想选择行,以便我可以获得以下数据帧。

|   | col1 |
|---|------|
| A |  120 |
| B |   80 |
| C |  120 |
| D |  150 |

基本上,我只想保留第一行与索引的唯一值相关联。

2 个答案:

答案 0 :(得分:3)

试试这个。

ng-pattern="/[0-9]{1}/"
ng-pattern="/[0-9{1}]/"
ng-pattern="/\d{1}/"

答案 1 :(得分:1)

以下是一个例子:

我们从一个看起来像这样的数据框开始

      | col |
-------------
   A  |  1  |
   B  |  2  |
   B  |  3  |
   C  |  4  |
   C  |  5  |
   C  |  6  |

使用groupby方法

import pandas as pd
df = pd.DataFrame(index=['a', 'b', 'b', 'c', 'c', 'c'],
                  data=[1, 2, 3, 4, 5, 6], columns=['col'])

group = df.groupby(level=0)
df = group.first()

最后:

      | col |
-------------
   A  |  1  |
   B  |  2  |
   C  |  4  |

如果要保留每个索引的最后一个值,可以使用group.last()