我刚刚开始编程,请原谅任何误用术语的行为。感谢您提前提供的帮助。英语不是我的第一语言,感谢您的理解。我在Pyhton使用Pandas。我使用df = pd.read_csv
从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
我知道如何使用在数据帧中选择特定的行/列
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)
问题是,如何从具有最小值和最大值的特定行中选择一个项目。假设最大值在2012年,我如何自动打印最大值所在的年份。我尝试过,但没有发生任何事情:
for a,b,c in zip(maximum_A, minimum_A, data_allyears):
if a == c:
print(f"${a} in year {c}")
试试这个;让我们调用您的数据帧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