Re: Re: Untitled

From Bistre Camel, 4 Months ago, written in Plain Text, viewed 66 times. This paste is a reply to Re: Untitled from Emerald Crane - view diff
URL http://codebin.org/view/50b75d73 Embed
Download Paste or View Raw
  1. import pandas as pd
  2.  
  3. data = pd.read_csv('/datasets/visits.csv', sep='\t')
  4.  
  5. # фильтруем слишком быстрые и медленные заезды и АЗС
  6. data['too_fast'] = data['time_spent'] < 60
  7. data['too_slow'] = data['time_spent'] > 1000
  8. too_fast_stat = data.pivot_table(index='id', values='too_fast')
  9. good_ids = too_fast_stat.query('too_fast < 0.5')
  10. good_data = data.query('id in @good_ids.index')
  11. good_data = good_data.query('60 <= time_spent <= 1000')
  12.  
  13. # считаем данные по отдельным АЗС и по сетям
  14. station_stat = data.pivot_table(index='id', values='time_spent', aggfunc='median')
  15. good_stations_stat = good_data.pivot_table(index='id', values='time_spent', aggfunc='median')
  16. stat = data.pivot_table(index='name', values='time_spent')
  17. good_stat = good_data.pivot_table(index='name', values='time_spent', aggfunc='median')
  18. stat['good_time_spent'] = good_stat['time_spent']
  19.  
  20. id_name = good_data.pivot_table(index='id', values='name', aggfunc=['first', 'count'])
  21. id_name.columns = ['name', 'count']
  22. station_stat_full = id_name.join(good_stations_stat)
  23.  
  24. # считаем показатели сетей из показателей АЗС,
  25. # а не усреднённые заезды на все АЗС сети
  26. good_stat2 = (
  27.     station_stat_full
  28.     .query('count > 30')
  29.     .pivot_table(index='name', values='time_spent', aggfunc=['median', 'count'])
  30. )
  31. good_stat2.columns = ['median_time', 'stations']
  32. final_stat = stat.join(good_stat2)
  33.  
  34. final_stat.sort_values()
  35. final_stat.plot(x='good_time_spent', y='median_time', kind='bar', figsize=(10, 5))

Reply to "Re: Re: Untitled"

Here you can reply to the paste above