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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

673閲覧

Python3系でif文の条件に当てはまる場合にtsvファイルの値(数字)カウントしたい

amaturePy

総合スコア131

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2020/03/27 03:33

Python3系で以下の流れを実行したいのですが、どのようにカウントをするかが分からず詰まっています。
アドバイス頂けないでしょうか?
if文の構築自体で不安ですが。。。

【実現したい流れ】

print("Would you like {} ?".format(random_res)) でtsvファイルから飲食店名(キー部分)を出力 ↓ yes or no で回答させる ↓ もしyesなら random_res = random.choice(list(d.keys())) で選ばれた飲食店名の値部分にある数字を1追加してカウントする。
practice.tsv NAME COUNT 吉野家 3 バーミヤン 2 すき家 1 松屋 1 ラーメン屋 1 無回答 1
import csv import pandas as pd import random file0 = "/Users/apple/Downloads/practice.tsv" d = pd.read_table(file0, index_col='NAME').to_dict()['COUNT'] random_res = random.choice(list(d.keys())) print("Would you like {} ?".format(random_res)) user_res = input("yes or no ?") if user_res == "yes": with open(file0, "w", "utf-8"): random_res += 1

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

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

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

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

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

guest

回答2

0

ベストアンサー

せっかくpandasを使っているのですからそれを生かした方が楽だと思います。
DataFraneを維持したまま値は加算できますし、to_csv関数ですぐに書き出せます。

python

1import pandas as pd 2import random 3 4file0 = "/Users/apple/Downloads/practice.tsv" 5d = pd.read_table(file0, index_col='NAME') 6 7#'NAME'列をリスト化しそこからランダムで一つ取り出す 8random_res = random.choice(list(d.index)) 9print("Would you like {} ?".format(random_res)) 10 11user_res = input("yes or no ?") 12if user_res == "yes": 13 #[random_res,'COUNT']の値に1加算 14 d.loc[d.index == random_res, "COUNT"] += 1 15 #tsv(タブ区切り)形式でファイルを書き出す 16 d.to_csv(file0, sep="\t")

投稿2020/03/27 04:47

編集2020/03/27 04:55
yureighost

総合スコア2183

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

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

amaturePy

2020/03/27 15:33

ありがとうございます! 本当にpandasて便利ですね。 pandasの解説も確認しながら修正頂いたコードで実行できました!
guest

0

カウントアップは以下の通り。

python

1d[random_res] += 1

投稿2020/03/27 04:27

t_obara

総合スコア5488

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

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

amaturePy

2020/03/27 15:33

ありがとうございます! カウントアップ参考にさせて頂きます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問