2016-11-14 21 views
2

私は、Pandas DataFramesを使用するPython生成レポートを作成しています。現在、私はDataFrame.to_string()メソッドを使用しています。しかし、これは文字列としてファイルに書き込みます。私はこれをテーブルのままにしておくことで、テーブルフォーミングを使用できる方法がありますか?Python Pandas DataFrameをWord文書に書き込む

コード:(文字列として)

SEMorgkeys = client.domain_organic(url, database = "us", display_limit = 10, export_columns=["Ph,Pp,Pd,Nq,Cp,Ur,Tr"]) 
org_df = pd.DataFrame(SEMorgkeys) 

f = open(name, 'w') 
f.write("\nOrganic:\n") 
f.write(org_df.to_string(index=False,justify="left")) 
f.close() 

現在のプリントアウト:

CPC Keyword      Position Difference Previous Position Search Volume Traffic (%) Url            
75.92  small business factoring 0     1     210   11.69  https://www..com/small-business-f... 
80.19    factoring company 0     8    1600   5.72  https://www..com/factoring-vs-ban... 
+0

はい、私は同意するだろう.CSVにデータを書き込み、その後、コピー/ペーストまたは単一のテーブルのWord –

+0

にExcelからテーブルをインポートする方が簡単かもしれません。しかし、ループあたり約6つのDataFramesを持つ約12のURLをループしています。私は本当に72テーブルの.csvを作成する必要はありません。 – spriore

+0

追加情報を追加できますか?あなたはMSWordでフォーマットされたテーブルとしてデータフレームを書くか、単に '.to_string'メソッドを使ってフォーマットされたテキスト行を追加しようとしていますか? – James

答えて

6

あなたはpython-docxライブラリを使用してまっすぐ.docxファイルにテーブルを書き込むことができます。

conda install python-docx --channel conda-forge 

またはコマンドラインからインストールピップする:

pip install python-docx 

あなたがCondaやアナコンダを使用してインストールのPythonを使用している場合は、コマンドラインからコマンドを実行することができますそれをインストールすると、ファイルを開いて表を追加し、表のセル・テキストにデータ・フレーム・データを移入することができます。

import docx 
import pandas as pd 

# i am not sure how you are getting your data, but you said it is a 
# pandas data frame 
df = pd.DataFrame(data) 

# open an existing document 
doc = docx.Document('./test.docx') 

# add a table to the end and create a reference variable 
# extra row is so we can add the header row 
t = doc.add_table(df.shape[0]+1, df.shape[1]) 

# add the header rows. 
for j in range(df.shape[-1]): 
    t.cell(0,j).text = df.columns[j] 

# add the rest of the data frame 
for i in range(df.shape[0]): 
    for j in range(df.shape[-1]): 
     t.cell(i+1,j).text = str(df.values[i,j]) 

# save the doc 
doc.save('./test.docx') 
+0

'df = pd.DataFrame(data)の' data'とは何ですか? ' – pyd

+0

@pyd' data'は 'DataFrame'のデータソースです( – spriore

+0

)。表?コードは機能しますが、自分のレポートが私のPandas Dataframeの周りにあり、私のワード文書に書かれているように見えるでしょう。ありがとう! :) – HenryHub

関連する問題