パンダは2つのデータフレームをマージしてマルチインデックスを形成します

maugch

私はパンダで遊んでいて、他のツールよりも優れた/高速な株価計算を実行できるかどうかを確認しています。単一株を持っている場合、毎日の計算を作成するのは簡単ですL

df['mystuff'] = df['Close']+1

ティッカー以上をダウンロードすると、複雑になります。

df = df.stack() 
df['mystuff'] = df['Close']+1
df = df.unstack()

前日の「閉じる」を使用したい場合、それは私には複雑すぎます。戻って単一のティッカーをフェッチし、iloc [i-1]または同様の操作を実行して(まだ理解していません)、データフレームをマージする可能性があると思いました。

シングルティッカーの2つのデータフレームをマージしてマルチインデックスを作成するにはどうすればよいですか?そのため:

f1 = web.DataReader('AAPL', 'yahoo', start, end)
f2 = web.DataReader('GOOG', 'yahoo', start, end)

のようなものです

f = web.DataReader(['AAPL','GOOG'], 'yahoo', start, end)

編集:これは私が作成できるfに最も近いものです。まったく同じではないので、fの代わりに使用できるかどうかはわかりません。

f_f = pd.concat(['AAPL':f1,'GOOG':f2},axis=1)

単純なデータフレームで作業を分割するのではなく、マルチインデックスで作業する操作を試してみる必要があるかもしれません。

完全なコード:

import pandas_datareader.data as web
import pandas as pd
from datetime import datetime

start = datetime(2001, 9, 1)
end = datetime(2019, 8, 31)
a = web.DataReader('AAPL', 'yahoo', start, end)
g = web.DataReader('GOOG', 'yahoo', start, end)
# here are shift/diff calculations that I don't knokw how to do with a multiindex
a_g = web.DataReader(['AAPL','GOOG'], 'yahoo', start, end)
merged = pd.concat({'AAPL':a,'GOOG':g},axis=1)

a_g.to_csv('ag.csv')
merged.to_csv('merged.csv')
import code; code.interact(local=locals())

補足:2つのcsvを比較する方法がわかりません

rpanai

これはまったく同じではありませんが、a_gケースのように使用できるマルチインデックスを返します

import pandas_datareader.data as web
import pandas as pd
from datetime import datetime

start = datetime(2019, 7, 1)
end = datetime(2019, 8, 31)
out = []
for tick in ["AAPL", "GOOG"]:
    d = web.DataReader(tick, 'yahoo', start, end)
    cols = [(col, tick) for col in d.columns]
    d.columns = pd.MultiIndex\
                  .from_tuples(cols,
                               names=['Attributes', 'Symbols'] )
    out.append(d)

df = pd.concat(out, axis=1)

更新

マルチインデックス列がある場合に新しい列を計算して追加する場合は、これに従うことができます

import pandas_datareader.data as web
import pandas as pd
from datetime import datetime

start = datetime(2019, 7, 1)
end = datetime(2019, 8, 31)

ticks = ['AAPL','GOOG']
df = web.DataReader(ticks, 'yahoo', start, end)
names = list(df.columns.names)

df1 = df["Close"].shift() 
cols = [("New", col) for col in df1.columns]
df1.columns = pd.MultiIndex.from_tuples(cols,
                                        names=names)

df = df.join(df1)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

パンダでは、2つのデータフレームを複雑なマルチインデックスでマージします

分類Dev

パンダ/ダスク:マルチインデックスまたは2番目のデータフレームの他の2つの列からデータフレームをフィルタリングしますか?

分類Dev

パンダマルチインデックスデータフレームは行を削除します

分類Dev

パンダ:マルチインデックスデータフレームのNaNを削除して、多くの行を1つの行にまとめます

分類Dev

同じインデックスパンダを使用して2つのデータフレームを行ごとにマージします

分類Dev

floatインデックスを使用して2つのパンダデータフレームをマージします

分類Dev

マルチデータフレームを1つのマルチインデックスデータフレームとしてマージ

分類Dev

マルチインデックスに基づいてパンダの2つのデータフレームをマージしようとしています

分類Dev

パンダはマルチキー値のデータフレーム列を行に再形成します

分類Dev

高度なパンダ:特定の行インデックスからマルチインデックスパンダデータフレームを作成します

分類Dev

マルチインデックスcsvファイルからマルチインデックスパンダデータフレームを作成します

分類Dev

パンダのデータフレームをピボットして、マルチインデックスの列を作成します

分類Dev

パンダ-列とインデックスの値を合計して2つのデータフレームをマージする

分類Dev

パンダは、別のデータフレームmithマルチインデックスに依存する要素スタイルを設定します

分類Dev

パンダの別のデータフレームの列と等しいインデックス値を持つマルチレベルインデックスデータフレームの行を選択します

分類Dev

パンダ:データフレームをマルチインデックスデータフレームと連結します。どうしましたか?

分類Dev

インデックスで2つのパンダデータフレームをマージするが、欠落している値を埋める方法

分類Dev

インデックスを使用してパンダのマルチインデックスデータフレームを反復処理する方法

分類Dev

メルト、スタック、マルチインデックスを使用してデータフレームを再形成しますか?

分類Dev

2つのデータフレームをマルチインデックスでマージする

分類Dev

パンダは、別の単一インデックスデータフレームに基づいてマルチインデックスデータフレームをクエリします

分類Dev

パンダはマルチレベルインデックスデータフレームの行を選択します

分類Dev

パンダで周波数時系列インデックスが異なる2つのデータフレームをマージ/結合しますか?

分類Dev

2つのパンダデータフレームを時系列インデックスとマージします

分類Dev

パンダ:インデックスと欠落値が異なる2つのデータフレームをマージします

分類Dev

2つの独立したパンダデータフレームを組み合わせてマトリックスを形成する

分類Dev

PYTHON-日付インデックスの2つのデータフレームをマージします

分類Dev

遅れたdatetimeindexでマルチインデックスパンダデータフレームをマージします

分類Dev

マルチインデックスを使用してパンダデータフレームの単一行を複数行に合計する方法は?

Related 関連記事

  1. 1

    パンダでは、2つのデータフレームを複雑なマルチインデックスでマージします

  2. 2

    パンダ/ダスク:マルチインデックスまたは2番目のデータフレームの他の2つの列からデータフレームをフィルタリングしますか?

  3. 3

    パンダマルチインデックスデータフレームは行を削除します

  4. 4

    パンダ:マルチインデックスデータフレームのNaNを削除して、多くの行を1つの行にまとめます

  5. 5

    同じインデックスパンダを使用して2つのデータフレームを行ごとにマージします

  6. 6

    floatインデックスを使用して2つのパンダデータフレームをマージします

  7. 7

    マルチデータフレームを1つのマルチインデックスデータフレームとしてマージ

  8. 8

    マルチインデックスに基づいてパンダの2つのデータフレームをマージしようとしています

  9. 9

    パンダはマルチキー値のデータフレーム列を行に再形成します

  10. 10

    高度なパンダ:特定の行インデックスからマルチインデックスパンダデータフレームを作成します

  11. 11

    マルチインデックスcsvファイルからマルチインデックスパンダデータフレームを作成します

  12. 12

    パンダのデータフレームをピボットして、マルチインデックスの列を作成します

  13. 13

    パンダ-列とインデックスの値を合計して2つのデータフレームをマージする

  14. 14

    パンダは、別のデータフレームmithマルチインデックスに依存する要素スタイルを設定します

  15. 15

    パンダの別のデータフレームの列と等しいインデックス値を持つマルチレベルインデックスデータフレームの行を選択します

  16. 16

    パンダ:データフレームをマルチインデックスデータフレームと連結します。どうしましたか?

  17. 17

    インデックスで2つのパンダデータフレームをマージするが、欠落している値を埋める方法

  18. 18

    インデックスを使用してパンダのマルチインデックスデータフレームを反復処理する方法

  19. 19

    メルト、スタック、マルチインデックスを使用してデータフレームを再形成しますか?

  20. 20

    2つのデータフレームをマルチインデックスでマージする

  21. 21

    パンダは、別の単一インデックスデータフレームに基づいてマルチインデックスデータフレームをクエリします

  22. 22

    パンダはマルチレベルインデックスデータフレームの行を選択します

  23. 23

    パンダで周波数時系列インデックスが異なる2つのデータフレームをマージ/結合しますか?

  24. 24

    2つのパンダデータフレームを時系列インデックスとマージします

  25. 25

    パンダ:インデックスと欠落値が異なる2つのデータフレームをマージします

  26. 26

    2つの独立したパンダデータフレームを組み合わせてマトリックスを形成する

  27. 27

    PYTHON-日付インデックスの2つのデータフレームをマージします

  28. 28

    遅れたdatetimeindexでマルチインデックスパンダデータフレームをマージします

  29. 29

    マルチインデックスを使用してパンダデータフレームの単一行を複数行に合計する方法は?

ホットタグ

アーカイブ