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

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

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

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Python

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

pandas

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

解決済

条件に合うcsvファイルの行を表示・書き込みたい

farinelli
farinelli

総合スコア61

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Python

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

pandas

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

4回答

0リアクション

0クリップ

456閲覧

投稿2019/08/29 15:48

編集2019/08/30 07:48

csvファイルの行毎の最大値がその行の2番目に大きい値の2倍を超える行に限り、その行の要素(Name,最大値が存在数る列の要素(One~Five),最大値)を表示した上で、新規作成したcsvファイルに該当する行の全ての要素を書き込むようなコードを書こうとした際、以下のエラーが出ました。
下記のような出力結果を得る為にお知恵をお貸しいただけますと幸いです。宜しくお願いします。

理想の出力結果

#ターミナル上の出力 [A,"Three",14] [C,"Three",12] [D,"Four",14] [E,"Four",12] [F,"One",10] #作成するcsvファイルの中身 Name,One,Two,Three,Four,Five A,3,3,14,4,2 C,3,2,12,4,3 D,2,4,5,14,6 E,4,3,5,12,4 F,10,2,3,4,2

エラー

Traceback (most recent call last): File "/Users/macuser/.pyenv/versions/3.7.4/lib/python3.7/site-packages/pandas/core/indexes/base.py", line 2897, in get_loc return self._engine.get_loc(key) File "pandas/_libs/index.pyx", line 107, in pandas._libs.index.IndexEngine.get_loc File "pandas/_libs/index.pyx", line 131, in pandas._libs.index.IndexEngine.get_loc File "pandas/_libs/hashtable_class_helper.pxi", line 1607, in pandas._libs.hashtable.PyObjectHashTable.get_item File "pandas/_libs/hashtable_class_helper.pxi", line 1614, in pandas._libs.hashtable.PyObjectHashTable.get_item KeyError: ('A', 'Three', 14) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "zoki.py", line 14, in <module> df2 = df[idx, score.index[0], score[0]] File "/Users/macuser/.pyenv/versions/3.7.4/lib/python3.7/site-packages/pandas/core/frame.py", line 2980, in __getitem__ indexer = self.columns.get_loc(key) File "/Users/macuser/.pyenv/versions/3.7.4/lib/python3.7/site-packages/pandas/core/indexes/base.py", line 2899, in get_loc return self._engine.get_loc(self._maybe_cast_indexer(key)) File "pandas/_libs/index.pyx", line 107, in pandas._libs.index.IndexEngine.get_loc File "pandas/_libs/index.pyx", line 131, in pandas._libs.index.IndexEngine.get_loc File "pandas/_libs/hashtable_class_helper.pxi", line 1607, in pandas._libs.hashtable.PyObjectHashTable.get_item File "pandas/_libs/hashtable_class_helper.pxi", line 1614, in pandas._libs.hashtable.PyObjectHashTable.get_item KeyError: ('A', 'Three', 14)

コード

comp2.py

import pandas as pd df = pd.read_csv('renshu.csv', index_col='Name') for idx, row in df.iterrows(): score = row['One':'Five'].sort_values(ascending=False) df2 = df[idx, score.index[0], score[0]] df3 = df[score.iloc[0] >= score.iloc[1] * 2] print(df2) df3.to_csv("score.csv")

ファイル

renshu.py

Name,One,Two,Three,Four,Five A,3,3,14,4,2 B,3,8,2,4,5 C,3,2,12,4,3 D,2,4,5,14,6 E,4,3,5,12,4 F,10,2,3,4,2

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

iOS 10.14.6, Python 3.7.4, Atom

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

can110

2019/08/29 22:08 編集

NameError: name 'tmp' is not defined が発生します。 実行、検証可能なコードを提示ください。 ①行毎の最大値がその行の2番目に大きい値の2倍を超える行に限り ②その行の要素(Name,最大値が存在数る列の要素(One~Five),最大値)を表示 ③新規作成したcsvファイルに書き込む のうち、どれがどのように分からないのかを記載ください。
meg_

2019/08/29 23:31

print(df2)の出力結果も掲載してください。
farinelli

2019/08/30 06:33

can110様: ・②が表示されない事に関して、df2 = df[idx, score.index[0], score[0]]が間違っているとは思うがどう直せばいいのか分からない ・③をしようとした際にファイルが作成されない事に関して、該当の行(df3 = df[score.iloc[0] >= score.iloc[1] * 2])も然りです。 meg_様 print(df2)の出力結果に関して、KeyError: ('A', 'Three', 14)というものが出ているものの、どういう状態でどうすれば解決するのか、もしご存知でしたら教えて頂けますと幸いです。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Python

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

pandas

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