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

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

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

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

pandas

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

Q&A

解決済

2回答

1439閲覧

python pandas max関数を日付と共に表示させたいです。

Mario_11

総合スコア95

Python 3.x

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

pandas

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

0グッド

0クリップ

投稿2020/02/14 02:00

pandasのMAX関数を日付と共に表示させたいのですが、調べてもやり方がわからず質問させていただきました。

python

1import pandas_datareader.data as web #データのダウンロードライブラリ 2 3number = 7676 4df = web.DataReader(str(number)+".T","yahoo","1980/1/1").dropna()#jpy 5df = df.dropna(how='any') 6 7print(df.tail()) 8print(df["Volume"][-100:].max())

出力結果

df

1 High Low Open Close Volume Adj Close 2Date 32020-02-07 1195.0 1166.0 1195.0 1176.0 8500.0 1176.0 42020-02-10 1186.0 1141.0 1161.0 1177.0 5000.0 1177.0 52020-02-12 1196.0 1160.0 1196.0 1184.0 6300.0 1184.0 62020-02-13 1196.0 1104.0 1185.0 1137.0 32900.0 1137.0 72020-02-14 1000.0 936.0 972.0 974.0 47300.0 974.0 8 9160800.0 10

どうすればmax関数と一緒に日付を表示させることができますか?
わかる方いれば教えてください、よろしくお願い致します。

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

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

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

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

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

guest

回答2

0

ベストアンサー

Series.idxmax() にて最大値を取る行のIndex値(日時)を得ることができますので、これを使用すると良いかと思います。

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.idxmax.html

Python

1# Volume列が最大のIndex値(日時)を取得 2idx = df.iloc[-10:, df.columns.get_loc("Volume")].idxmax() 3print(idx) 4# 2020-02-19 00:00:00 5 6# Volume列が最大値を取得 7max_value = df.iloc[-10:, df.columns.get_loc("Volume")].max() 8print(max_value) 9# 9964 10 11# Volume列が最大の行を表示 12print(df.loc[idx]) 13#High 1002.0 14#Low 1041.0 15#Open 1072.0 16#Close 1170.0 17#Volume 9964.0 18#Adj Close 1105.0 19#Name: 2020-02-19 00:00:00, dtype: float64

投稿2020/02/14 02:47

magichan

総合スコア15898

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

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

quickquip

2020/02/14 03:35

idxmaxが使えるのは、「Volume列が最大の行」が複数ある時それらから代表の1個だけ分かればいい、という条件の時ですね。
magichan

2020/02/14 03:58

はい。そのとおりidxmaxの場合はそうなりますね。
Mario_11

2020/02/15 04:05

ありがとうございます!
guest

0

単純に以下のように最大値と一致する行を抽出すればよいのではないでしょうか。

Python

1import pandas as pd 2 3# テストデータ 4df = pd.DataFrame({'Date':['2020-02-01', '2020-02-02', '2020-02-03', '2020-02-04'], 'Volume':[100, 300, 200, 300]}) 5df['Date'] = pd.to_datetime(df['Date']) 6df = df.set_index('Date') 7print(df) 8# Volume 9#Date 10#2020-02-01 100 11#2020-02-02 300 12#2020-02-03 200 13#2020-02-04 300 14 15ret = df.loc[df['Volume'] == df['Volume'].max()] 16print(ret) 17# Volume 18#Date 19#2020-02-02 300 20#2020-02-04 300

投稿2020/02/14 02:34

can110

総合スコア38266

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

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

Mario_11

2020/02/15 04:05

ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問