簡體   English   中英

我如何選擇與列列表具有相同對應值的行中的特定項目 - Pandas Pyhton

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM