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

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

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

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

Q&A

解決済

1回答

1023閲覧

Pythonでのjsonファイルのデータ出力について

1mzmk

総合スコア42

Python

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

0グッド

0クリップ

投稿2019/03/23 11:52

前提・実現したいこと

私は、最近Pythonのプログラミングについて学習を始めたものです。
私は、
pythonを使って、jsonファイルを読み込みました。
私が読み込んだファイルの“price”という項目の一番高い値段から10番目までに高いワインを出力したいと考えているのですが、その方法がわかりません。
現在、写真のようにjsonファイルの読み込みと集計の方は完了しておりますが、その後どのように操作すればよいかわかりません。
ご回答お願い致します。
イメージ説明
イメージ説明
イメージ説明

発生している問題・エラーメッセージ

エラーメッセージ ### 該当のソースコード ```ここに言語名を入力 ソースコード

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

Python

1df = df.sort_values('price', ascending=False)

とすることによりprice列を降順になるようにデータフレームを並べかえることできます。
あとは

Python

1df.iloc[:10]

にてデータフレームの先頭から10行が選択できるかと思います。

投稿2019/03/23 13:47

magichan

総合スコア15898

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

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

1mzmk

2019/03/23 15:29

ご回答ありがとうございました。 とても的確なご回答していただき助かりました。 もう一つご質問があるのですが descriptionの項目の数が最も多いワインの種類を同様に上位10種類を調べる際には "value_counts()"を用いることで求められることが分かったのですが これを私のデータのファイルでは、どのようにコードとして書けば、求められるのかがわかりません。 お手数おかけしますが、ご回答よろしくお願いします。
magichan

2019/03/24 03:02

手元にデータがなく、データフレームの構成もわかりませんので、「descriptionの項目の数が最も多い」が何を元に算出される結果なのかが今一つ分かりません。 同じワインに対して複数行のデータが存在するということでしょうか?それとも同じセル上のDescriptionの文や文字の数を求めるのでしょうか?
1mzmk

2019/03/25 07:23

私のjsonファイルはワインについてのレビューについてのデータで、多くの種類のワインのレビューについてリストとして記載されています。 "value_counts()"を使用して、これらのワインの中で上位1番目から10番目に多くレビューされているワインの種類をもとめたいです。 お手数おかけしますが、よろしくお願いいたします。 なので、申し訳ないのですが考え直した結果、おそらく”description”の項目は関係ないとおもわれます。 お手数おかけしますが、よろしくお願いいたします。
1mzmk

2019/03/25 07:40

記載し忘れたのですが、ワインの種類は"variety"という項目名でjsonファイルに記載されています。 よろしくお願いいたします。
magichan

2019/03/25 08:12 編集

なるほど、'variety'の列の値が同じものが、それぞれ何行ずつあるかをカウントすると良いのすね。 であれば df.groupby('veriety')['description'].count() で算出できるとおもいます。(結果はSeriesとなります) あとは "price" の時と同様に df.groupby('veriety')['description'].count().sort_values(ascending=False).iloc[:10] とすると TOP10が求まります。
1mzmk

2019/03/25 14:34

ありがとうがざいました。 具体的に答えて頂き、本当に助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問