如何在一行中选择一个与列列表具有相同对应值的特定项目——Pandas Pyhton



我刚刚开始编程,请原谅任何误用术语的行为。感谢您提前提供的帮助。英语不是我的第一语言,感谢您的理解。我在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

最新更新