繁体   English   中英

Python - 从数据框中的列中迭代检索值

[英]Python - Iterating retrieval of values from a column in dataframe

我有以下数据框,其中包含DescriptionWeekCount列。

Description Week count 527 N25846 External EMERGENCY STOP 2015-05-03 77 528 N25846 External EMERGENCY STOP 2015-05-10 983 529 N25846 External EMERGENCY STOP 2015-05-17 245 530 N25846 External EMERGENCY STOP 2015-05-24 897 531 N25846 External EMERGENCY STOP 2015-05-31 2144 532 N25846 External EMERGENCY STOP 2015-06-07 926 533 N25846 External EMERGENCY STOP 2015-06-14 1082 534 N25846 External EMERGENCY STOP 2015-06-21 1935 535 N25846 External EMERGENCY STOP 2015-06-28 1511 536 N25846 External EMERGENCY STOP 2015-07-05 3206 537 N25846 External EMERGENCY STOP 2015-07-12 2031 538 N25846 External EMERGENCY STOP 2015-07-19 590 539 N25846 External EMERGENCY STOP 2015-07-26 1085 540 N25846 External EMERGENCY STOP 2015-08-02 162 541 N25846 External EMERGENCY STOP 2015-08-09 922 542 N25846 External EMERGENCY STOP 2015-08-16 655 543 N25846 External EMERGENCY STOP 2015-08-23 114 544 N25846 External EMERGENCY STOP 2015-08-30 42 1747 P873 ENCLOSURE DOOR CAN BE OPENED 2015-05-03 274 1748 P873 ENCLOSURE DOOR CAN BE OPENED 2015-05-10 1358 1749 P873 ENCLOSURE DOOR CAN BE OPENED 2015-05-17 1047 1750 P873 ENCLOSURE DOOR CAN BE OPENED 2015-05-24 833 1751 P873 ENCLOSURE DOOR CAN BE OPENED 2015-05-31 1277 1752 P873 ENCLOSURE DOOR CAN BE OPENED 2015-06-07 812 1753 P873 ENCLOSURE DOOR CAN BE OPENED 2015-06-14 648 1754 P873 ENCLOSURE DOOR CAN BE OPENED 2015-06-21 666 1755 P873 ENCLOSURE DOOR CAN BE OPENED 2015-06-28 918 1756 P873 ENCLOSURE DOOR CAN BE OPENED 2015-07-05 1614 1757 P873 ENCLOSURE DOOR CAN BE OPENED 2015-07-12 1173 1758 P873 ENCLOSURE DOOR CAN BE OPENED 2015-07-19 772

我想检索每个Description的最后 5 个计数并继续所有计数并对结果执行一些操作。 换句话说,我想为每个唯一的描述值检索最近 5 WeekDescription count 例如:对于N25846 External EMERGENCY STOP ,我的输出将是 - 42, 114, 655, 922, 162 同样,对于P873 ENCLOSURE DOOR CAN BE OPENED ,结果将是 - 772, 1173, 1614, 918, 666

您可以使用数据帧的groupbytail方法:

In [71]: df.groupby('Description').tail(5)
Out[71]:
    index                        Description        Week  count
13    540     N25846 External EMERGENCY STOP  2015-08-02    162
14    541     N25846 External EMERGENCY STOP  2015-08-09    922
15    542     N25846 External EMERGENCY STOP  2015-08-16    655
16    543     N25846 External EMERGENCY STOP  2015-08-23    114
17    544     N25846 External EMERGENCY STOP  2015-08-30     42
25   1754  P873 ENCLOSURE DOOR CAN BE OPENED  2015-06-21    666
26   1755  P873 ENCLOSURE DOOR CAN BE OPENED  2015-06-28    918
27   1756  P873 ENCLOSURE DOOR CAN BE OPENED  2015-07-05   1614
28   1757  P873 ENCLOSURE DOOR CAN BE OPENED  2015-07-12   1173
29   1758  P873 ENCLOSURE DOOR CAN BE OPENED  2015-07-19    772

将上述分配给变量df您可以尝试以下操作:

    result = df.groupby('Description').apply(func)

其中func是这样的:

    def func(group):
        # return the last five entries in the count column
        result = group['count'].iloc[-5:]
        # if you need the week data, use to_dict() instead of tolist()
        return result.tolist()

如果不尝试,我不能完全确定func的返回值是否可以与apply一起apply ,因此您可能需要稍微尝试一下。 但这应该给你一个系列,其中索引是描述,值是最后五个计数的列表或字典。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM