从OrderedDict

时间:2019-08-06 06:45:46

标签: python

我想从OrderedDict中删除数据。

我有以下列表:

1384   2018-11-23
1385   2018-11-23
1386   2018-11-23
1387   2018-11-23
1397   2018-11-24
1398   2018-11-24
1399   2018-11-24
1400   2018-11-24
1401   2018-11-24
1402   2018-11-24
1403   2018-11-24
1404   2018-11-24
1417   2018-11-25
1418   2018-11-25
1419   2018-11-25
1420   2018-11-25
1421   2018-11-25
1422   2018-11-25
1423   2018-11-25
1424   2018-11-25
1425   2018-11-25
1426   2018-11-25
1427   2018-11-25
1428   2018-11-25
1439   2018-11-25
1440   2018-11-26
1441   2018-11-26
1442   2018-11-26
1443   2018-11-26
1444   2018-11-26
1445   2018-11-26
1446   2018-11-26
1447   2018-11-26
1448   2018-11-26
1449   2018-11-26
1450   2018-11-26
1452   2018-11-26
1461   2018-11-26
1462   2018-11-26
1463   2018-11-26
1464   2018-11-27
1465   2018-11-27
1466   2018-11-27
1467   2018-11-27
1468   2018-11-27
1670   2018-12-05
1671   2018-12-05
1686   2018-12-06
1687   2018-12-06
1688   2018-12-06

我已经用此代码计算了每个日期的发生次数:

inp=df_nan[label_date]
odct = OrderedDict()
for item in inp:
    try:
        odct[item] += 1
    except KeyError:
        odct[item] = 1

它给了我输出:

OrderedDict
([(Timestamp('2018-11-23 00:00:00'), 4),

(Timestamp('2018-11-24 00:00:00'), 8),

(Timestamp('2018-11-25 00:00:00'), 13),

(Timestamp('2018-11-26 00:00:00'), 15),

(Timestamp('2018-11-27 00:00:00'), 5),

(Timestamp('2018-12-05 00:00:00'), 2),

(Timestamp('2018-12-06 00:00:00'), 3)])

现在我只想保留等于或小于5的日期。

完成后。我想从发生次数高于5的数据集中删除日期。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用内置功能filter

filter(lambda x: odct[x] <= 5, df_nan)