pandasを使用する方法についてそれはありませんどのようにすべての
使用.T
がテーブルを転置するには、この表では、あなたが
import pandas
df = pandas.DataFrame.from_dict(data)
html = """<!DOCTYPE html>
<html>
<body>
{body}
</body>
</html>
"""
with open("test.html","w") as file:
file.write(html.format(body=df.to_html(na_rep="0")))
この結果に対してjob
with open("test2.html","w") as file:
file.write(html.format(body=df.T.to_html(na_rep="0")))
私は最初にこの
html = """<!DOCTYPE html>
<html>
<body>
{body}
</body>
</html>
"""
table="""
<table border="1" class="dataframe">
<thead>
{thead}
</thead>
<tbody>
{tbody}
</tbody>
</table>
"""
thead="""
<tr style="text-align: right;">
{th}
</tr>
"""
th="""<th>{}</th>\n"""
td="""<td>{}</td>\n"""
tr="""<tr>{}</tr>\n"""
def manual_table(data, colums):
head = thead.format(th= "".join(map(th.format,["Name"]+colums)))
pieces=[]
for autor, value in data.items():
temp = [autor]
temp.extend(value.get(c,0) for c in colums)
pieces.append(tr.format("".join(td.format(x) for x in temp)))
body = "\n".join(pieces)
return table.format(thead=head, tbody=body)
colums="Microsoft Ubuntu IOS Go Solaris C".split()
with open("test3.html","w") as file:
file.write(html.format(body=manual_table(data, colums)))
のように行くだろう、パンダなし
でそれらを結果として、私はいくつかのテンプレートを作成するので、私は私が最後に読むことができる何かを得ますそれに応じて、テンプレートに応じて、そして私がcolums
変数で指定した順序でそれらのテンプレートを埋めます。あなたのコードに問題の
一つで
この結果は、あなたが正しい順序で値をフェッチしていないということです、そのための1つの部分的な解決策は
colums="Microsoft Ubuntu IOS Go Solaris C".split()
for row in data.values():
table += '<tr><td>' + '</td><td>'.join(str(row.get(c,0)) for c in colums) + '</td></tr>'
です
列の名前をハードコードしないでデータから取得する場合は、これを行うことができます。
コメント欄にあなたの質問を約0
>>> {k for v in data.values() for k in v }
{'C', 'IOS', 'Solaris', 'Ubuntu', 'Microsoft', 'Go'}
>>>
、はい、できますし、ちょうどあなたが望む結果を得るまでそれで遊んで、チェック例えば
>>> df
Author1 Author2 Author3
C 248.0 38.0 2.0
Go NaN 38.0 2.0
IOS 24.0 38.0 2.0
Microsoft 248.0 38.0 2.0
Solaris 24.0 NaN NaN
Ubuntu 24.0 38.0 NaN
>>> df["Total"] = df.T.sum()
>>> df
Author1 Author2 Author3 Total
C 248.0 38.0 2.0 288.0
Go NaN 38.0 2.0 40.0
IOS 24.0 38.0 2.0 64.0
Microsoft 248.0 38.0 2.0 288.0
Solaris 24.0 NaN NaN 24.0
Ubuntu 24.0 38.0 NaN 62.0
のように、sum
と非常に簡単です。 documentationだからあなたはそれが持っているすべてのおもちゃを知っている
エラーが発生した場合は、完全なエラーメッセージを表示する必要があります。とにかく、dictは順序を保持しておらず、あなたが必要とするのは 'defaultdic(dict、...)'ではないと覚えておいてください。 –