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

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

新規登録して質問してみよう
ただいま回答率
85.35%
データバインディング

データソースと、アプリケーションやウェブページ(ウェブアプリケーション)のユーザインタフェースを静的または動的に結合する技術です。

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Python

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

データマイニング

データマイニングは、購買履歴やクレジットカードの利用履歴、電話の通話履歴など企業にある大量のデータを解析して、その中に隠れたパターンやルールを探し出す技術です。DMと略されることもあります。

Q&A

解決済

2回答

1432閲覧

Pythonで複数のデータフレームを一つにするやり方を教えてください。yfinanceのデータです。

samankoar

総合スコア7

データバインディング

データソースと、アプリケーションやウェブページ(ウェブアプリケーション)のユーザインタフェースを静的または動的に結合する技術です。

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Python

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

データマイニング

データマイニングは、購買履歴やクレジットカードの利用履歴、電話の通話履歴など企業にある大量のデータを解析して、その中に隠れたパターンやルールを探し出す技術です。DMと略されることもあります。

0グッド

0クリップ

投稿2021/04/01 21:45

yfinanceから複数の会社の配当や分割の情報をダウンロードして一つのデータフレームに表示したいのですがエラーが発生します、多分3つの会社に対して2列のデータを3つ書き足すと6列になってるとこが原因だと思いますが解決できないです
簡単なコードで教えていただければありがたい
よろしくお願いします

import yfinance as yf import pandas as pd import numpy as np data = pd.DataFrame() stock_list = ['7974.T', '7203.T','9843.T'] start = '2021-01-1' end = '2021-012-30' for i in stock_list: DvD = yf.Ticker(i).dividends.loc[start:end] Split = yf.Ticker(i).splits.loc[start:end] data = pd.concat([DvD, Split], axis=1) # data = np.hstack([data, Split]) data.columns = stock_list data

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

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

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

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

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

jeanbiego

2021/04/02 02:55

エラー全文と、データの内容(無理なら同じ形のダミーデータ)を記載してください。
samankoar

2021/04/02 04:44

Dividends Stock Splits Date 2021-03-30 1070.0 0.0 Empty DataFrame Columns: [Dividends, Stock Splits] Index: [] Dividends Stock Splits Date 2021-02-18 58.0 0.0 --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-88-e13ef32a5252> in <module> 5 print(series) 6 data = pd.concat([data, series], axis=1) ----> 7 data.columns = stock_list 8 data 9 ~/opt/anaconda3/lib/python3.7/site-packages/pandas/core/generic.py in __setattr__(self, name, value) 5473 try: 5474 object.__getattribute__(self, name) -> 5475 return object.__setattr__(self, name, value) 5476 except AttributeError: 5477 pass pandas/_libs/properties.pyx in pandas._libs.properties.AxisProperty.__set__() ~/opt/anaconda3/lib/python3.7/site-packages/pandas/core/generic.py in _set_axis(self, axis, labels) 667 def _set_axis(self, axis: int, labels: Index) -> None: 668 labels = ensure_index(labels) --> 669 self._mgr.set_axis(axis, labels) 670 self._clear_item_cache() 671 ~/opt/anaconda3/lib/python3.7/site-packages/pandas/core/internals/managers.py in set_axis(self, axis, new_labels) 219 if new_len != old_len: 220 raise ValueError( --> 221 f"Length mismatch: Expected axis has {old_len} elements, new " 222 f"values have {new_len} elements" 223 ) ValueError: Length mismatch: Expected axis has 6 elements, new values have 3 elements
jeanbiego

2021/04/02 04:46

「質問への追記・修正の依頼」に対応するときは、質問欄を編集するようにしてください。
guest

回答2

0

ベストアンサー

エラーメッセージとソースコードの対応がとれないので、ソースコードが間違っているようです。
それはさておき、samankoarさんの求める結果を作りたければ、

data.columns = stock_list

data.columns = = tuple((i, j) for i in stock_list for j in ['dividends', 'splits'])
に変更すれば良いと思います。

投稿2021/04/02 07:31

ppaul

総合スコア24670

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

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

samankoar

2021/04/02 10:52

@ppaulさん、どうもありがとうございました。勉強になりました。
guest

0

ValueError: Length mismatch: Expected axis has 6 elements, new values have 3 elements
ということなので、data.columns = stock_listにおいて、dataの列数とstock_listの長さが合っていないのでしょう。
確認してみてください。

#追記
stock_list = ['7974.T', '7203.T','9843.T']を6要素にすれば良いだけと思います。
たとえばこんな感じですね。
stock_list = ['7974.T', 'a', '7203.T', 'b', '9843.T' 'c', ]

投稿2021/04/02 04:48

編集2021/04/02 05:34
jeanbiego

総合スコア3966

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

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

samankoar

2021/04/02 04:50

そのやり方をわからないです、教えて頂きたかったので質問しました
jeanbiego

2021/04/02 05:34

追記しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問