Python: 読書リストの作成, dictionary ver. 5

これから読む本のリストを作成しています。Pythonの練習もかねて、Pythonのdictionaryを使います。

Dictionaryの中に、本のタイトルをキーとして、その下に各項目名のキーのある入れ子型のdictionaryです。並べ替えや集計は、Pandasでデータフレームに変更して実行します。

たまたま、MediumにPythonの同種のデータベース作成の手順の解説を見つけました。Dictionaryを使わずにPandasで直接データフレームを作成して、データフレームに一件ずつ追加していくやり方です。

 

Using the Pandas Data Frame as a Database.

 

はじめて読書リストを作る場合、それまでに書き込んだリストを見て書き込む内容を考えたり、項目を変えたりしならがリストを作るので、dictionaryのほうがリストを作成しやすいと思います。書き込む項目、内容が確定すれば、上の解説のスクリプトでデータフレームに変更すればよいです。

 

I.Dictionaryの作成

 

1.スクリプト

 

キーは、”title”、”author”、”published(出版年)”、 “link(テキストのリンク)”、 “bio”、 “read(読んだ回数)”、 “rate(評価1:5)”、”priority(読む順序)”、”quotes(引用)”、 “comments”です。

dictionaryはキーで呼び出せるのが特徴です。

下のスクリプトのインデントに注意してください。Pythonではインデントに機能があります。

現在4件作成しました。随時更新します。

 

# create a dictionary
books = {"Tractatus Logico-Philosophicus": {
             "author": "Wittgenstein",
             "published": 1922,
             "link": "https://people.umass.edu/klement/tlp/tlp.pdf",
             "bio": "Wittgenstein (26 April 1889–29 April 1951) was an Austrian philosopher.",
             "read": "20",
             "rate": "5",
             "quotes": ". . . diese [der ethishe Lohn und ethische Strafe] muessen in der Handlung selpst liegen.",
             "comments": "The parts on ethics: 4.6 and the followings have been read agarin."
            }
         ,
         "The Handbook of Epictetus(Gutenberg)": {
             "author": "Epictetus",
             "published": 108,
             "link": "http://pioneer.chula.ac.th/~pukrit/bba/Epictetus.pdf",
             "bio": "Epictetus (c. 55–135 AD) was a Greek Stoic philosopher.",
             "read": 1,
             "rate": 3,
             "quotes": "Never say about anything, I have lost it, but say I have restored it. Is your child dead? It has been restored. Is your wife dead? She has been restored.",
             "comments": "I have some sympahth but feel it too ascetic."
            }
         ,
         "The idiot": {
             "author": "Fyodor Dostoyevsky",
             "published": 1868,
             "link": "http://www.gutenberg.org/ebooks/2638",
             "bio": "Fyodor Mikhailovich Dostoevsky(11 November 1821–9 February 1881) was a Russian novelist.",
             "read": 0,
             "rate": 0,
             "quotes": "?",
             "comments": "Read first"
            }}
# show all the title
books.keys()
# create a dataframe
import pandas as pd
books_df = pd.DataFrame.from_dict(books, orient='index')
print(books_df.head())
# same the data as CSV
books_df.to_csv('books.csv')

 

2.説明

 

Dictionary作成後に、全てを示す式は次です。

 

print(books)

 

件数、つまり、リストの冊数を示す式は次です。lenはlengthの意味です。

 

len(データ名)

 

キーの一覧、つまり、書名のみのリストを示す式は次です。

 

books.keys()

 

pandasをインポートしてdictionaryを、books_dfの名前でデータフレームに変換する式は次です。

 

import pandas as pd
books_df = pd.DataFrame.from_dict(books, orient='index')
 

 

CSVファイルに保存する場合の式は次です。ワーキングディレクトリに保存されます。

 

データ名.to_csv('データ名.csv') 

 

Azure Notebooksでは次のように表示されます。

 

 

 

これで、Pythonで集計できる読書リストができました。

Please follow and like us:
error

About shibatau

I was born and grown up in Kyoto. I studied western philosophy at the University and specialized in analytic philosophy, especially Ludwig Wittgenstein at the postgraduate school. I'm interested in new technology, especially machine learning and have been learning R language for two years and began to learn Python last summer. Listening toParamore, Sia, Amazarashi and MIyuki Nakajima. Favorite movies I've recently seen: "FREEHELD". Favorite actors and actresses: Anthony Hopkins, Denzel Washington, Ellen Page, Meryl Streep, Mia Wasikowska and Robert DeNiro. Favorite books: Fyodor Mikhailovich Dostoyevsky, "The Karamazov Brothers", Shinran, "Lamentations of Divergences". Favorite phrase: Salvation by Faith. Twitter: @shibatau

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.