以下是日志文件的一部分,该文件在一段时间内记录单个请求。编写一个python程序来生成每个客户步行总步数的报告。我有一个包含以下行的日志文件。
01-01-2012 01:13:36 ygyfyeic vyeywq Customerid:1231 walked 245 steps
01-09-2013 01:18:34 gghjjhkl fyuftf Customerid:56789 walked 678 steps
01-09-2013 01:18:34 hugigygu hoiigy Customerid:1231 walked 456 steps
01-09-2013 01:18:34 ghguh kjhih Customerid:1678 walked 600 steps
我能够在不同的列表中提取客户ID和步骤数,但我不得不创建一个报告,例如每个客户采取的步骤数。
注意:日期保持不变,客户ID的数量不相同。
答案 0 :(得分:0)
如果您已将数据提取到两个单独的列表中,请调用它们ids
和steps
。我们可以通过以下方式打印报告:
for i in range(len(ids)):
print('Customer number %s took %s steps' % (ids[i], steps[i]))
您也可以使用zip function,它将两个或多个列表放在一个元组列表中,其中包含每个元素的相应元素:
for cid, csteps in zip(ids, steps):
print('Customer number %s took %s steps' % (cid, csteps))
答案 1 :(得分:0)
使用pandas和dataframe,
从我能够提取客户ID而不是在不同列表中的步骤我假设您有2个差异列表中的customerid和步骤。
将pandas导入为pd
cid = [1231,56789,1231,1678]
steps=[1,2,3,4]
df = pd.DataFrame({
'cid': cid,
'steps':steps
})
print(df.groupby(['cid']).sum())
O / P
steps
cid
1231 4
1678 4
56789 2
参考:http://www.shanelynn.ie/summarising-aggregation-and-grouping-data-in-python-pandas/