我有四个长度约为 200,000 的列表。第一个列表包含 1 到 24 之间的小时值,这是一个示例
Hour_list = [1,2,2,2,5,5,7,5,12,18,24,.....]
avg_occupancy = [0,5,9,5,13,24,56,23,.....]
avg_absences = [0,4,5,7,8,6,8,3,2,1.....]
Room_config= ['config_a001', 'configa002', 'configa003', 'configa004', 'configa005'.........]
我需要为每小时创建 24 个列表,list_hour1、List_Hour2 等等,然后根据它们过滤其他三个列表,例如,List_Hour2 应包含数字 2,而 avg_ocupancy_hour_2 应包含所有具有与索引对应的索引的项目第一个列表中的数字 2,这意味着 avg_ocupancy_hour_2 = [5,9,5,......], avg_absences_2 = [4,5,7,....], Room_config = ['configa002' , 'configa003', 'configa004', 'configa005'........]
我认为 Zip 会很好,但不确定如何在这种情况下使用它
是的,这就像......正是为什么数据帧是一回事。
Hour_list = [1,2,2,2]
avg_occupancy = [0,5,9,5]
avg_absences = [0,4,5,7]
Room_config= ['config_a001', 'configa002', 'configa003', 'configa004']
把它们放在熊猫中:
import pandas as pd
data = pd.DataFrame(dict(Hour_list = Hour_list, avg_occupancy = avg_occupancy, avg_absences = avg_absences, Room_config = Room_config))
将它们分组:
hour_groups = data.groupby('Hour_list')
现在你可以做任何事情——你可以计算汇总统计数据,或者只是遍历所有时间:
for hour, hour_data in hour_groups:
do_stuff(hour_data)
对于你的后续问题,你可以采取以下手段和计数:
mean_data = hour_groups[['avg_occupancy', 'avg_absences']].agg('mean')
mean_data['count'] = hour_groups['avg_occupancy'].count()
然后,您可以选择索引为 9(即 9 小时).loc
并进行逻辑测试的任何行。
mean_data.loc[mean_data.index == 9, :]
该, :
部分告诉 pandas 返回满足mean_data.index == 9
测试的任何行的所有列。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句