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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python

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

pandas

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

Q&A

0回答

3508閲覧

pandas のdataframeの行方向の代入・append

kahn

総合スコア8

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python

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

pandas

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

0グッド

0クリップ

投稿2016/08/22 06:53

###前提・実現したいこと

pandasを用いて処理を行うスクリプトを書いています。SeriesをDataFrameに代入(?)するところで、エラーが生じたので、質問させていただきます。

version は以下の通りです。

pandas (0.18.1)
numpy (1.11.0)
Python 2.7.10

なお、エラーメッセージは出力されていないので、何が原因かがさっぱりわかりません。以下の順番です。

  • 該当のソースコード
  • それぞれのDataFrameを出力した時の結果

###該当のソースコード

python2

1for past_num in past_nums: 2 # DataFrameを取得 3 df_trade = get_indexes_over_z(ccode, heikin_day, input_path, past_num) 4 5 # 後で要素を追加するための空のdataframeを用意 6 df_prices = pd.DataFrame(columns=range(1, 82)) 7 8 # indexes_yutai_day は中身がintのリスト 9 for index_yutai_day in indexes_yutai_day: 10 # 一時的なDFの用意 11 tmp_df = pd.DataFrame() 12 13 # df_prices に入れたい要素の取得 14 # 出力した結果は下にあり(1) 15 tmp_df = df_all.iloc[index_yutai_day - span:index_yutai_day + span + 1, :] 16 17 # ここから下の部分がうまくいってない 18 tmp_df.index = range(1, 1 + len(tmp_df)) 19 df_prices.append(tmp_df.loc[:, 4], ignore_index=True) 20 21 # 要素がすべてNaNのまま 22 # 下に出力結果あり 23 print df_prices

それぞれのDataFrameをプリントさせた結果

# tmp_dfの出力結果 0 1 2 3 4 5 6 1 2013-06-05 457 465 454 454 105000 454 2 2013-06-04 456 463 451 458 375000 458 3 2013-06-03 473 476 462 463 368000 463 4 2013-05-31 468 489 462 481 678000 481 5 2013-05-30 464 472 455 459 413000 459 6 2013-05-29 463 474 459 467 209000 467 7 2013-05-28 450 462 450 460 247000 460 8 2013-05-27 465 466 448 457 329000 457 9 2013-05-24 470 489 457 472 698000 472 10 2013-05-23 486 494 464 464 356000 464 11 2013-05-22 487 493 486 486 208000 486 12 2013-05-21 490 492 485 490 346000 490 13 2013-05-20 501 504 492 492 300000 492 14 2013-05-17 488 502 483 497 492000 497 15 2013-05-16 485 485 477 481 430000 481 16 2013-05-15 471 486 468 483 540000 483 17 2013-05-14 469 471 462 463 251000 463 18 2013-05-13 468 469 461 465 229000 465 19 2013-05-10 468 472 465 468 297000 468 20 2013-05-09 467 468 461 462 253000 462 21 2013-05-08 459 466 457 466 448000 466 22 2013-05-07 455 459 455 456 229000 456 23 2013-05-02 455 455 449 452 123000 452 24 2013-05-01 451 457 444 454 217000 454 25 2013-04-30 444 456 444 453 270000 453 26 2013-04-26 455 455 442 444 287000 444 27 2013-04-25 455 457 453 456 248000 456 28 2013-04-24 447 455 447 455 242000 455 29 2013-04-23 444 447 442 443 185000 443 30 2013-04-22 446 448 441 443 196000 443 .. ... ... ... ... ... ... ... 52 2013-03-21 434 437 433 435 374000 435 53 2013-03-19 428 433 427 430 314000 430 54 2013-03-18 429 429 424 426 225000 426 55 2013-03-15 429 432 428 430 529000 430 56 2013-03-14 427 434 426 428 377000 428 57 2013-03-13 426 427 423 425 378000 425 58 2013-03-12 432 433 426 426 386000 426 59 2013-03-11 431 434 428 434 369000 434 60 2013-03-08 429 438 428 433 582000 433 61 2013-03-07 420 435 419 430 476000 430 62 2013-03-06 419 420 418 420 138000 420 63 2013-03-05 418 419 415 417 181000 417 64 2013-03-04 415 417 412 415 245000 415 65 2013-03-01 407 415 407 413 262000 413 66 2013-02-28 400 408 400 408 257000 408 67 2013-02-27 400 401 397 397 221000 397 68 2013-02-26 399 402 395 400 312000 400 69 2013-02-25 398 403 396 400 493000 400 70 2013-02-22 396 399 395 398 190000 398 71 2013-02-21 399 400 397 398 134000 398 72 2013-02-20 398 400 396 399 244000 399 73 2013-02-19 394 398 394 397 167000 397 74 2013-02-18 385 395 385 394 203000 394 75 2013-02-15 388 389 381 385 269000 385 76 2013-02-14 390 396 388 392 246000 392 77 2013-02-13 395 396 390 391 208000 391 78 2013-02-12 396 398 393 393 230000 393 79 2013-02-08 396 397 392 394 232000 394 80 2013-02-07 399 399 395 396 256000 396 81 2013-02-06 394 399 394 398 329000 398

最後の時点でのdf_pricesの出力結果

Empty DataFrame Columns: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81] Index: [] [0 rows x 81 columns]

###試したこと
ここに記述されていることは試しました。

他に試したことは、以下のコードも試しています。行方向に代入していきたいのですが、列方向にしかされていかず、思うような結果になりませんでした。

python2

1for past_num in past_nums: 2 # DataFrameを取得 3 df_trade = get_indexes_over_z(ccode, heikin_day, input_path, past_num) 4 5 # 後で要素を追加するための空のdataframeを用意 6 df_prices = pd.DataFrame(columns=range(1, 82)) 7 for i, index_yutai_day in enumerate(indexes_yutai_day): 8 tmp_df = pd.DataFrame() 9 tmp_df = df_all.iloc[index_yutai_day - span:index_yutai_day + span + 1, :] 10 # tmp_df[4]はSeries 11 # ここの代入がうまくいってない 12 tmp_df.index = range(1, 1 + len(tmp_df)) 13 df_prices.append(tmp_df.loc[:, 4], ignore_index=True) 14 15 # これで列方向に代入されていく(方向がいい) 16 df_prices.loc[i] = tmp_df.loc[:, 4].T 17 print df_prices

よろしくお願いします。

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

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

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

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

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

argius

2016/08/23 13:12

ダミーのデータでも良いので、誰でも試せるコードを提供していただけないでしょうか。 そうすればもしかしたらおちからになれるかも知れません。
退会済みユーザー

退会済みユーザー

2016/09/29 09:10

最終的にどのようなデータになることを望まれているのかも記載された方が回答がつきやすくなるかと思われます。見た感じ行列を入れ替えたいだけのように思われましたので。
kahn

2017/05/06 05:00

コメントありがとうございました。こちら解決していて、更新を忘れておりました。。 ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問