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

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

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

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

Python 3.x

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

Python

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

pandas

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

Q&A

1回答

1051閲覧

条件分岐により、代入したデータについて

aae_11

総合スコア178

CSV

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

Python 3.x

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

Python

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

pandas

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

0グッド

2クリップ

投稿2020/02/10 07:21

編集2020/02/10 07:37

変数に入っているデータの処理について、分からない部分があり質問させて貰いました。
以下の変数dfdf = pd.read_csv('test.csv')(pdはimportしたpandasのことです)こちらの形で、CSVファイルを読み込んだ後の変数になります。
イメージ説明
イメージ説明

変数dfには、506×14のデータが入っていますが、_dfは、一度dfの値を入れてから、条件で分岐させ再度_dfへデータを入れております。
_dfの値を見てみますと、データの数は415×14になっています。
分からない部分なのですが、一度dfを代入していると思うのですが、条件で絞った後元々あるデータを上書きしているだけではないのでしょうか...?
他の、条件に当てはまらなかったデータが消えてしまっているのが、疑問です。
こちらの現象につきまして、ご助言頂けましたら幸いです。

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

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

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

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

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

can110

2020/02/10 13:15

何が疑問、あるいは本来やりたいことがどのようなことなのかがくみとれません。 簡単な入力データ、コードにて、現状(疑問に思う)の結果と欲しい(意図した)結果と提示すると回答得られやすくなります。
guest

回答1

0

_df = _df[略]では、「条件(列colがcolsの3シグマ以内に収まる)にあてはまる行だけで構成されるデータフレーム」に置き換えています。だから、条件にあてはまらない506-415=91行が取り除かれているのでしょう。
行や列の中身だけを置き換えたいのであれば、データフレーム全体ではなく行を指定して代入したほうが良いと思います。

※colsとかの定義が見当たらず、かつコードが<code>で記載されていません。スクリーンショットではなく、回答者がコピペで試せる形で書くと、もっと回答がつきやすくなると思います。

投稿2020/02/10 08:16

jeanbiego

総合スコア3966

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

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

aae_11

2020/02/10 08:40

ご回答ありがとうございます。 >_df = _df[略]では、「条件(列colがcolsの3シグマ以内に収まる)にあてはまる行だけで構成されるデータフレーム」に置き換えています。だから、条件にあてはまらない506-415=91行が取り除かれているのでしょう。 こちらなのですが、実は特定の行を更新しているに過ぎないのではないかと思っていたものでして... 条件に当てはまらない行が削除されるには、削除する関数などを通さなければ、削除できないのではないかと、疑問ではあったのですよね...
aae_11

2020/02/10 08:41

>colsとかの定義が見当たらず、かつコードが<code>で記載されていません 情報不足すみません。そうですね...コードを直接載せた方が、回答者の方にも試して頂けますよね...
meg_

2020/02/10 10:54

更新ではなく抽出にあたると思います。(何故更新と思われたのでしょうか?) 抽出されたデータを変数に代入しているので行数は少なくなります。(同じままの場合もあり)
aae_11

2020/02/10 12:49

>更新ではなく抽出にあたると思います。(何故更新と思われたのでしょうか?) コメントありがとうございます。 こちらなのですが、「_df」には既に値が入っている為、その_dfに条件にマッチした_dfの値を入れる為、更新ではないかと思いました。 なので、自分としましては、「_df」はからの変数でなければならないのではないかと思っているのですよね...
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問