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

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

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

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

while

Whileは多くの言語で使われるコントロール構造であり、特定の条件が満たされる限り一連の命令を繰り返し実行します。

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

Python

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

Q&A

解決済

1回答

1160閲覧

pythonでの繰り返し文、ループ文、for/whileについて

ryosuke197

総合スコア12

Python 3.x

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

while

Whileは多くの言語で使われるコントロール構造であり、特定の条件が満たされる限り一連の命令を繰り返し実行します。

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

Python

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

0グッド

0クリップ

投稿2019/12/06 11:57

編集2019/12/06 12:10

前提・実現したいこと

csvを読み込んで、その中から条件を指定してデータを抽出しています。
最終的には全てのデータを抽出することになるのですが、条件を繰り返すことで全てのデータを抽出したいです。また、以下のDijに入れたデータを1枚のシートで見れるようにエクセルで出力したいです。

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

whileの繰り返しが行われないです。

該当のソースコード

python import pandas as pd df_read_North=pd.read_csv("pandas_practice_NS.csv",encoding="shift-jis") df_read_South=pd.read_csv("pandas_practice_NS.csv",encoding="shift-jis") df_read_West=pd.read_csv("pandas_practice_WE.csv",encoding="shift-jis") df_read_East=pd.read_csv("pandas_practice_WE.csv",encoding="shift-jis") i1=0 i2=0 j1=0 j2=0 i1Last=126 j1Last=60 i2Last=60 j2Last=126 while i1==i1Last: while j1==j1Last: df_data_North=df_read_North[(df_read_North["i"]==i1) & (df_read_North["j"]==j1)] df_data_South=df_read_South[(df_read_South["i"]==i1+1) & (df_read_South["j"]==j1)] df_data_West=df_read_West[(df_read_West["i"]==i2) & (df_read_West["j"]==j2)] df_data_East=df_read_East[(df_read_East["i"]==i2+1) & (df_read_East["j"]==j2)] df_data_NS=pd.merge(df_data_North,df_data_South,how="outer") df_data_WE=pd.merge(df_data_West,df_data_East,how="outer") Dij=pd.merge(df_data_NS,df_data_WE,how="outer") j1+=1 i2+=1 i1+=1 j2+=1 df_Dij=pd.DataFrame(Dij) with pd.ExcelWriter('Tokyo20181.xlsx')as writer: df_Dij.to_excel(writer,'Dij')
### 試したこと インテンドを気にしてみたりしましたがダメでした。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。

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

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

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

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

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

y_waiwai

2019/12/06 11:59

このままではコードが読めないので、質問を編集し、<code>ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
ryosuke197

2019/12/06 12:10

すみません、見落としてました。編集しました。
guest

回答1

0

ベストアンサー

while i1==i1Last:

i1とi1Lastが同一の間しかループ回りません
ということは、whileのナカミは全く実行されません

投稿2019/12/06 12:13

y_waiwai

総合スコア87719

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

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

ryosuke197

2019/12/07 04:04

言われて気づきました。ありがとうございます。また、Dijを1枚のシートに出力させる方法に関しては、最後のDijにfor文を使うことで、繰り返し出てくるDijを別の変数に入れ、その変数を出力するのが、一般的でしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問