質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

解決済

1回答

1929閲覧

python xmlrpclib ブログ投稿

hiroway

総合スコア9

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

0グッド

0クリップ

投稿2017/04/19 03:08

import sys import xmlrpclib import pandas import pandas as pd df = pd.DataFrame({'column1':[1,2], 'column2':[3,4]}, index = ['index1','index2']) print df df2 = df.to_html() print df2 def main(): server_url = 'http://blog.fc2.com/xmlrpc.php' blog_id = 'http://xxxx.blog.fc2.com' username = 'xxxx@xxxx.com' password = 'xxxx' server = xmlrpclib.Server(server_url) entry_id = server.metaWeblog.newPost( blog_id, username, password, { 'title': u"タイトル", 'description': df2, #<=この部分で悩んでいます... }, xmlrpclib.True) print entry_id if __name__ == "__main__": main()

簡潔に伝えますと
dfをhtmlのtable(df2)にし、
FC2の投稿する場所(description)に、
テーブル(df2)とコメント(tableの枠の下)を
付けたいのです。


現状

.column1column2
index113
index224

やりたいこと

.column1column2
index113
index224

コメント


いろいろ調べてたり、試して
table(df2)の投稿はできるのですが
コメントを枠の下につけることができません。

方法がわかる方いらっしゃいませんか?
もしくは、できないのでしょうか?

どなたか、ご教授いただくとありがたいです!
よろしくお願い致します!


動作環境
macOS Sierra 10.12.4
Python 2.7.9

参考url
http://python-tips.seesaa.net/article/146246855.html

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

DataFrameをtable化したあとはhtmlのDOM操作で可能かと思います。
DOM操作は色んなパッケージでできると思いますが、以下ではlxml - XML and HTML with Pythonを利用した例です。

Python

1import lxml.html 2import pandas as pd 3 4df = pd.DataFrame({'列1':[1,2], '列2':[3,4]}, index = ['index1','index2']) # 日本語を含む 5df2 = df.to_html() 6 7table = lxml.html.fromstring(df2) 8 9# rootにdivを配置し、配下にtableとp(コメント)を配置 10# 文字化けしないようにfromstringではunicode文字列で渡し、tostringではエンコーディングを指定する 11root = lxml.html.fromstring(u'<div></div>') 12root.append( table) 13comment = lxml.html.fromstring(u'<p>コメント</p>') 14root.append(comment) 15html = lxml.html.tostring(root,encoding='utf-8') 16print(html)

結果

<div><table border="1" class="dataframe"> <thead> <tr style="text-align: right;"> <th></th> <th>列1</th> <th>列2</th> </tr> </thead> <tbody> <tr> <th>index1</th> <td>1</td> <td>3</td> </tr> <tr> <th>index2</th> <td>2</td> <td>4</td> </tr> </tbody> </table><p>コメント</p></div>

詳細は以下などが参考になります。
lxmlでhtmlを処理する

投稿2017/04/19 04:21

編集2017/04/19 04:35
can110

総合スコア38262

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hiroway

2017/04/19 05:02

ありがとうございます! 一撃でできました! import lxml.htmlというモジュールは使ったことなかったので 勉強してみます! 敏速な回答ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問