这是我的代码:
pizzarequests = pd.Series(open('pizza_requests.txt').read().splitlines())
line = "unix_timestamp_of_request_utc"
lines = pizzarequests[pizzarequests.str.contains(line)].str.split(",").str[1]
print(lines)
dts = pd.to_datetime(lines, unit='s')
hours = dts.dt.hour
print(hours)
pizzarequests = pd.Series(open('pizza_requests.txt').read().splitlines())
line = "requester_received_pizza"
lines = pizzarequests[pizzarequests.str.contains(line)].str.split(",").str[1]
data = pd.DataFrame({'houroftheday' : hours.values, 'successpizza' : lines})
print(data)
***这给了我:***
houroftheday successpizza
23 18 true
67 2 true
105 14 true
166 23 true
258 20 true
297 1 true
340 2 true
385 22 true
...
304646 21 false
304686 12 false
304746 1 false
304783 3 false
304840 20 false
304907 17 false
304948 1 false
305023 4 false
我怎样才能计算出只与事实相符的小时数呢?你知道吗
我想您需要一个每小时发生次数的计数,其中
successpizza
是true
。如果是这样,您将希望使用successpizza
对数据帧进行切片,然后groupby
对houroftheday
列进行houroftheday
并使用计数进行聚合。你知道吗看起来您正在从文件中读取真/假值,因此它们是字符串。你需要先转换它们。你知道吗
首先按列
successpizza
中的True
筛选所有行,然后按列sum
筛选houroftheday
:如果需要
size
只需要计数True
,如果使用sum
,则True
是类似1
的进程:或者如果需要每个
houroftheday
的长度:删除跟踪空白的解决方案是^{} :
相关问题 更多 >
编程相关推荐