table headers

This commit is contained in:
gauthiier 2017-01-19 16:19:37 +01:00
parent d74478a366
commit fe56bc0e8e
5 changed files with 961 additions and 959 deletions

File diff suppressed because it is too large Load Diff

View File

@ -110,7 +110,6 @@ In our conversations with Geert Lovink, we derived a few observations on the dat
Was Nettime's heyday only part of the first decade of its existence? Judged solely in terms of sheer amount of postings to the list (activity), it clearly can be seen to have diminished. However, in what follows, we propose different schemata, measuring the amount of dialog on the list (vigour) as well categorizing that dialog by the most prolific contributors (outspokeness). Was Nettime's heyday only part of the first decade of its existence? Judged solely in terms of sheer amount of postings to the list (activity), it clearly can be seen to have diminished. However, in what follows, we propose different schemata, measuring the amount of dialog on the list (vigour) as well categorizing that dialog by the most prolific contributors (outspokeness).
##Vigour ##Vigour
A mailing list certainly lay itself to announcements-type messages where a single message is posted to the list while no one does and/or is expected to reply. Yet, more importantly, what mailing lists also allow is to produce 'threads' which are formed around a varying amount of replies to an initial message. These threads form the basis of an asynchronous 'dialog' so to speak. As introduce in the previous section, we came up with the term 'vigour' to account for this practice of replying to messages, which, in turn, create 'dialogical' dynamics between some of the list's members. A mailing list certainly lay itself to announcements-type messages where a single message is posted to the list while no one does and/or is expected to reply. Yet, more importantly, what mailing lists also allow is to produce 'threads' which are formed around a varying amount of replies to an initial message. These threads form the basis of an asynchronous 'dialog' so to speak. As introduce in the previous section, we came up with the term 'vigour' to account for this practice of replying to messages, which, in turn, create 'dialogical' dynamics between some of the list's members.
@ -176,7 +175,7 @@ Our survey's replies statistics are divided into two categories: (1) replies to
<--html_threads_initiated_replies_avg_ranking--> <--html_threads_initiated_replies_avg_ranking-->
<div class="figure"><p class="caption">table 6: Top 10 contributors ranking for average amount of 'replies to'</p></div> <div class="figure"><p class="caption">table 6: Top 10 contributors ranking for average amount of 'replies to'</p></div>
<--html_replies_ranking--> <--html_replies_ranking-->
<div class="figure"><p class="caption">table 7: Top 10 contributors ranking for amount of 'replies from'</p></div> <div class="figure"><p class="caption">table 7: Top 10 contributors ranking for amount of 'replies from'</p></div>

View File

@ -45,7 +45,10 @@ class Html:
def from_dataframe(data_frame, table_name=None, name_map={}, url_map={}): def from_dataframe(data_frame, table_name=None, name_map={}, url_map={}):
header = [] header = []
header.append(data_frame.index.name) if data_frame.index.name in name_map:
header.append(name_map[data_frame.index.name])
else:
header.append(data_frame.index.name)
for h in data_frame.columns: for h in data_frame.columns:
if h in name_map: if h in name_map:
h = name_map[h] h = name_map[h]

View File

@ -443,7 +443,7 @@ class Query:
else: else:
time_key = k.strftime('%Y-%m') time_key = k.strftime('%Y-%m')
frame = v.groupby('from').size().sort_values(ascending=False)[:rank] frame = v.groupby('from').size().sort_values(ascending=False)[:rank]
r[time_key] = frame.to_frame('nbr_replies') r[time_key] = frame.to_frame('nbr-replies')
return r return r
def replies_avg_ranking(self, rank=5, filter_nettime=True): def replies_avg_ranking(self, rank=5, filter_nettime=True):

View File

@ -208,31 +208,31 @@ class Report:
def html_msgs_threads_replies_avg_rep_msg_thrd(self): def html_msgs_threads_replies_avg_rep_msg_thrd(self):
self.matrix_msgs_threads() self.matrix_msgs_threads()
return format.Html.from_dataframe(self.matrix[['nbr-messages', 'nbr-threads', 'nbr-replies', 'avg-thrd-per-msg', 'avg-rep-per-thrd']], return format.Html.from_dataframe(self.matrix[['nbr-messages', 'nbr-threads', 'nbr-replies', 'avg-thrd-per-msg', 'avg-rep-per-thrd']],
name_map={'nbr-messages': 'Messages', 'nbr-threads': 'Threads', 'nbr-replies': 'Replies in threads', 'avg-thrd-per-msg': 'Avg. Threads', 'avg-rep-per-thrd': 'Ratio Replies per Thread'}) name_map={'year': 'Year', 'nbr-messages': 'Messages', 'nbr-threads': 'Threads', 'nbr-replies': 'Replies', 'avg-thrd-per-msg': 'Avg. Threads', 'avg-rep-per-thrd': 'Ratio Replies per Thread'})
def html_activity_from_ranking(self, rank=10): def html_activity_from_ranking(self, rank=10):
d = self.query.activity_from_ranking(rank=rank) d = self.query.activity_from_ranking(rank=rank)
return format.Html.from_dataframe(d, name_map={'nbr-bytes': 'bytes'}) return format.Html.from_dataframe(d, name_map={'from': 'From', 'nbr-messages': 'Messages'})
# #
def html_threads_replies_to_ranking(self, rank=10): def html_threads_replies_to_ranking(self, rank=10):
d = self.query.threads_replies_to_ranking(rank=rank) d = self.query.threads_replies_to_ranking(rank=rank)
return format.Html.from_dataframe(d) return format.Html.from_dataframe(d, name_map={'from': 'From', 'nbr-references': 'Replies'})
# #
def html_threads_initiated_from_ranking(self, rank=10): def html_threads_initiated_from_ranking(self, rank=10):
d = self.query.threads_initiated_from_ranking(rank=rank) d = self.query.threads_initiated_from_ranking(rank=rank)
return format.Html.from_dataframe(d) return format.Html.from_dataframe(d, name_map={'from': 'From', 'nbr-initiated-threads': '(Initiated) Threads)'})
# #
def html_threads_activity_threads_initiated_avg_ranking(self, rank=10): def html_threads_activity_threads_initiated_avg_ranking(self, rank=10):
d = self.query.threads_activity_threads_initiated_avg_ranking(rank=rank) d = self.query.threads_activity_threads_initiated_avg_ranking(rank=rank)
return format.Html.from_dataframe(d) return format.Html.from_dataframe(d, name_map={'from': 'From', 'messages': 'Messages', 'threads': 'Threads', 'avg.threads': 'Avg. Threads'})
# #
def html_threads_initiated_replies_avg_ranking(self, rank=10): def html_threads_initiated_replies_avg_ranking(self, rank=10):
d = self.query.threads_initiated_replies_avg_ranking(rank=rank) d = self.query.threads_initiated_replies_avg_ranking(rank=rank)
return format.Html.from_dataframe(d) return format.Html.from_dataframe(d, name_map={'from': 'From', 'threads': 'Threads', 'replies': 'Replies', 'avg.replies': 'Avg. Replies'})
def html_content_length_from_ranking(self, rank=10): def html_content_length_from_ranking(self, rank=10):
d = self.query.activity_from_ranking(rank=rank) d = self.query.activity_from_ranking(rank=rank)
@ -240,7 +240,7 @@ class Report:
def html_threads_ranking(self, rank=10): def html_threads_ranking(self, rank=10):
d = self.query.threads_ranking(rank=rank) d = self.query.threads_ranking(rank=rank)
return format.Html.from_dataframe(d, name_map={'nbr-references': 'nbr. replies'}, url_map={'subject': 'url'}) return format.Html.from_dataframe(d, name_map={'date': 'Date', 'subject': 'Subject', 'from': 'From', 'nbr-references': 'Replies'}, url_map={'Subject': 'url'})
def html_threads_ranking_year(self, rank=5, resolution='y'): def html_threads_ranking_year(self, rank=5, resolution='y'):
d = self.query.threads_ranking(rank=rank, resolution=resolution) d = self.query.threads_ranking(rank=rank, resolution=resolution)
@ -251,17 +251,17 @@ class Report:
s += '<div class="thread_rank_year">' + nl s += '<div class="thread_rank_year">' + nl
s += '<div class="year_t">' + i + '</div>' + nl s += '<div class="year_t">' + i + '</div>' + nl
s += '<div class="rank_t">' + nl s += '<div class="rank_t">' + nl
s += format.Html.from_dataframe(d[i], name_map={'nbr-references': 'nbr. replies'}, url_map={'subject': 'url'}) + nl s += format.Html.from_dataframe(d[i], name_map={'date': 'Date', 'subject': 'Subject', 'from': 'From', 'nbr-references': 'Replies'}, url_map={'Subject': 'url'}) + nl
s += '</div>' + nl s += '</div>' + nl
s += '</div>' + nl s += '</div>' + nl
return s + nl return s + nl
def html_replies_ranking(self, rank=10): def html_replies_ranking(self, rank=10):
d = self.query.replies_ranking(rank=rank) d = self.query.replies_ranking(rank=rank)
return format.Html.from_dataframe(d, name_map={'nbr-replies': 'nbr. replies'}) return format.Html.from_dataframe(d, name_map={'from': 'From', 'nbr_replies': 'Replies'})
def html_replies_avg_ranking(self, rank=10): def html_replies_avg_ranking(self, rank=10):
d = self.query.replies_avg_ranking(rank=rank) d = self.query.replies_avg_ranking(rank=rank)
return format.Html.from_dataframe(d, name_map={'nbr-replies': 'nbr. replies'}) return format.Html.from_dataframe(d, name_map={'from': 'From', 'messages': 'Messages', 'replies': 'Replies', 'avg.replies': 'Avg. Replies'})