Python Pandas:仅保留包含第一个项目的数据帧行

时间:2014-06-10 08:47:29

标签: python pandas

我有这个:

    Date value
0   1975     a
21  1975     b
1   1976     b
22  1976     c
3   1977     a
2   1977     b
4   1978     c
25  1978     d
5   1979     e
26  1979     f
6   1980     a
27  1980     f

我无法找到一种方法来仅保留包含第一次出现的'值的行。我想删除重复的'值,保留行中最低的'日期'。最终结果应为:

    Date value
0   1975     a
21  1975     b
22  1976     c
25  1978     d
5   1979     e
26  1979     f

3 个答案:

答案 0 :(得分:6)

为了更清楚地说明Quazi发布的内容:drop_duplicates()是您所需要的。默认情况下,保持第一次出现并丢弃所有内容 - 请查看the manual以获取更多信息。所以,当然,你应该做

>>> dataframe = oldDf.sort('Date').drop_duplicates(subset=['value'])
>>> dataframe
Out[490]: 
    Date value
0   1975     a
21  1975     b
22  1976     c
25  1978     d
5   1979     e
26  1979     f

答案 1 :(得分:1)

FooBar是正确的,但不建议使用sort并将其替换为sort_values

dataframe = oldDf.sort_values('Date').drop_duplicates(subset=['value'])

答案 2 :(得分:0)

df.drop_duplicates(subset=['value'], inplace=True)