![](/img/trans.png)
[英]Find the 'max' of a specific column with Pandas, then output that VALUE with a corresponding ITEM from the same row
[英]How do i pick a specific item in a row that has the same corresponding value with the column list - Pandas Pyhton
我剛剛開始編程,請原諒任何濫用術語。 我在這里先向您的幫助表示感謝。 英語不是我的母語,謝謝理解。 我在 Pyhton 中使用 Pandas。 我使用 csv 文件中的df = pd.read_csv
創建了一個數據列表。這是 CSV 文件包含的內容
Year,A,B,C,D,E,F
2007,7632014,4643033,206207,626668,89715,18654926
2008,6718487,4220161,379049,735494,58535,29677697
2009,1226858,5682198,482776,1015181,138083,22712088
2010,978925,2229315,565625,1260765,146791,15219378
2011,1500621,2452712,675770,1325025,244073,19697549
2012,308064,2346778,591180,1483543,378998,33030888
2013,275019,4274425,707344,1664747,296136,17503798
2014,226634,3124281,891466,1807172,443671,16023363
2015,2171559,3474825,1144862,1858838,585733,16778858
2016,767713,4646350,2616322,1942102,458543,13970498
2017,759016,4918320,1659303,2001220,796343,9730659
2018,687308,6057191,1524474,2127583,1224471,19570540
我知道如何 select 使用 dataframe 中的特定行/列:
data_2012 = (df.loc[0:12, 1:7].values.tolist()[6])
data_A = (df.loc[5:12, 0:10][1].values.tolist())
我需要在列列表data_A
中找到最大值、最小值,所以我創建了
maximum_A = max(data_A)
minimum_A = min(data_A)
我還為所有需要的行創建了一個列表
data_2011 = (df.loc[0:12, 1:7].values.tolist()[5])
data_2012 = (df.loc[0:12, 1:7].values.tolist()[6])
data_2013 = (df.loc[0:12, 1:7].values.tolist()[7])
data_2014 = (df.loc[0:12, 1:7].values.tolist()[8])
data_2015 = (df.loc[0:12, 1:7].values.tolist()[9])
data_2016 = (df.loc[0:12, 1:7].values.tolist()[10])
data_2017 = (df.loc[0:12, 1:7].values.tolist()[11])
data_2018 = (df.loc[0:12, 1:7].values.tolist()[12])
我試圖將它們變成一個列表,如圖所示
data_allyears = (data_2011, data_2012, data_2013, data_2014, data_2015, data_2016, data_2017, data_2018)
問題是,我如何 select 來自該特定行的具有最小值、最大值的項目。 假設最大值在 2012 年,我如何自動打印最大值所在的年份。 我已經嘗試過了,但什么也沒發生:
for a,b,c in zip(maximum_A, minimum_A, data_allyears):
if a == c:
print(f"${a} in year {c}")
嘗試這個; 讓我們打電話給你的 dataframe df
:
df.loc[df.Year == df.Year.max()]
如何自動打印最大值所在的年份
# get year of maximum of A
column = 'A'
year = df.loc[df[column] == max(df[column]), ['Year']].values[0][0]
print(year)
將Year
設置為索引並找到每年的最大值
df1 = df.set_index('Year').assign(Min=lambda x: x.max(axis=1),
Max=lambda x: x.min(axis=1))
print(df1)
# Output
A B C D E F Min Max
Year
2007 7632014 4643033 206207 626668 89715 18654926 18654926 89715
2008 6718487 4220161 379049 735494 58535 29677697 29677697 58535
2009 1226858 5682198 482776 1015181 138083 22712088 22712088 138083
2010 978925 2229315 565625 1260765 146791 15219378 15219378 146791
2011 1500621 2452712 675770 1325025 244073 19697549 19697549 244073
2012 308064 2346778 591180 1483543 378998 33030888 33030888 308064
2013 275019 4274425 707344 1664747 296136 17503798 17503798 275019
2014 226634 3124281 891466 1807172 443671 16023363 16023363 226634
2015 2171559 3474825 1144862 1858838 585733 16778858 16778858 585733
2016 767713 4646350 2616322 1942102 458543 13970498 13970498 458543
2017 759016 4918320 1659303 2001220 796343 9730659 9730659 759016
2018 687308 6057191 1524474 2127583 1224471 19570540 19570540 687308
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.