我试图做一些有点违反直觉的事情。在下面的可重复示例中应该清楚的问题是,我试图折叠一列分类值,同时返回其他列的聚合值。
raw_data = {
'id': ['4', '5', '6', '7'],
'score1': ['1', '2', '4', '0'],
'score2': ['3', '4', '11', '0'],
'time1': ['7.3', '2.4', '0.0', '0.3'],
'time2': ['4.3', '5.4', '1.0', '0.0']}
df = pd.DataFrame(raw_data, columns = ['id', 'score1', 'score2', 'time1', 'time2'])
df
id score1 score2 time1 time2
0 4 1 3 7.3 4.3
1 5 2 4 2.4 5.4
2 6 4 11 0.0 1.0
3 7 0 0 0.3 0.0
从这个数据框中我试图返回一行pandas HTML表格,显示:
score1
score2
time1
time2
理想情况下,id
列会显示all
之类的内容。事件发生后,这个值当然可以很容易地改变。
单行HTML表格如下所示:
id score1 score2 time1 time2
All 7 18 2.5 2.7
这甚至可能吗?
答案 0 :(得分:2)
可以做类似的事情:
df = df.astype('float64')
tmp = pd.DataFrame([{"score1": df.score1.sum(), "score2":df.score2.sum(), "time1":df.time1.mean(), "time2":df.time2.median()}])
out = tmp.to_html(index=False)
给出了这样的表格
<table border="1" class="dataframe"> <thead> <tr style="text-align: right;"> <th>score1</th> <th>score2</th> <th>time1</th> <th>time2</th> </tr> </thead> <tbody> <tr> <td>7</td> <td>18</td> <td>2.5</td> <td>2.65</td> </tr> </tbody></table>