teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

回答方法の追加

2020/01/02 15:43

投稿

frederick_1974
frederick_1974

スコア303

answer CHANGED
@@ -10,4 +10,20 @@
10
10
  # 行名とD列で値を取得
11
11
  y = df.at[result,'D']
12
12
  print('B列の最大値は、',x,'で、その時のD列の値は、',y,'です。')
13
- ```
13
+ ```
14
+ ただ、これだと最大値が複数行に存在する場合(B列をA列に変更した場合など)に対応できないので、
15
+ ```Python
16
+ import pandas as pd
17
+
18
+ df = pd.read_csv('sample.csv', names=['A', 'B', 'C', 'D', 'E', 'F'])
19
+ x = (df['B'].max())
20
+
21
+ # xが存在する行名をリストで取得
22
+ results = list(df.query('B == @x').index)
23
+
24
+ for result in results:
25
+ # 行名とD列で値を特定
26
+ y = df.at[result,'D']
27
+ print('B列の最大値は、',x,'で、その時のD列の値は、',y,'です。')
28
+ ```
29
+ としてみるとか。B列をA列に変えると、「最大値は…」が2回出力されますが。