Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。839件0Python初心者です。うまくコードが書けなくて困っています。totalcol2008.Tという処理を2008,2009、2010のデータに対してしたいと思っています。totalcol%sの部分にエラーが出てしまいます。イテレータを使ったり年数の所を+1したりするアルゴリズムは思いつくのですが肝心の代入が出来なくて困っています。上記のコードは無事回りました。ありがとうございます。少々改造すると動かなくなりました。辞書の中にデータフレームを保持できていない(2行なので)?からでしょうか。わかる方ヘルプお願い致します。pd.concat([total08,total09,total10],axis=1)さらに追記capromanはcolumnやrowに入れる名前のリストです。上できちんと定義されています。in2008などと列名をつけ08~10年の各都道府県のデータをconcatして出力したいです。した形で説明せず混乱を招いて申し訳ございません。elementsとなります。個の銅バッジ左辺の変数名を動的に変えることはできないです。dictを使うと良いと思います。7:49実行結果とエラー内容を追加しました。票6とりあえず、計算途中のtotalcolは別の名前にして、ついでに関数などにしてしまうといいと思います。temp2.Tで、この関数をつかってご質問のコードをできるだけそのまま動くようにすると以下のようになるかと思います。以上のようにグローバルの名前空間を書き換えることでできなくもないですが、非常にわかりにくいのでやめた方がいいでしょう。辞書かクラスを使うのが賢明だと思います。同じ関数と辞書を使う場合だと以下のようにできます。capromanの右辺のcapromanはなんでしょうか?上の方で定義されているのでしょうか?定義されていない変数を使おうとすれば、Python(というか普通のプラグラミング言語)は困ってエラーになってしまいます。それ以降のコードは何がしたいのかよくわからなかったので、最初の回答の補足説明だけしておきます。foo関数の引数migは辞書ではありません。値}の組からなるデータ構造です。辞書dのメソッドitemsは、このキーと値の組を返します。migに代入しています。して内側のブロックが実行され・・・という処理が行われています。上記回答のコードでfor文を使わずに書けば次のようになります。calc_total(mig2010)年(year)は関数に渡していないので、関数内では参照できません。関数内でも年の情報が必要なら、関数の引数を増やすとか、別の関数を作って年の情報が必要な計算はそっちで実行するとか、migxxxxと年を持ったクラスを作ってそれに対して計算を行う、あるいは計算する関数をメソッドとして持たせてしまう等の方法があると思います。「変数」と「関数」、「変数のスコープ」について入門書か何かで一度勉強しておいた方がいいと思います。あと、多少長くなってしまっても、エラー内容を書いたほうが回答がつきやすいと思います。個の銅バッジわかりやすいよう修正しましたがエラーメッセージをのせるのを忘れたため明日対処します。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。