Python 在一列中查找另一列中给定范围的最大值
我对熊猫和数据帧很陌生。我想从1990年至1999年期间收入最高的数据框中找到产品(“产品”) 我的最佳尝试仅给出数据框中的行号和收入,尽管我希望它也显示所有其他列 这是我最好的尝试:Python 在一列中查找另一列中给定范围的最大值,python,pandas,dataframe,Python,Pandas,Dataframe,我对熊猫和数据帧很陌生。我想从1990年至1999年期间收入最高的数据框中找到产品(“产品”) 我的最佳尝试仅给出数据框中的行号和收入,尽管我希望它也显示所有其他列 这是我最好的尝试: HighestIncome90s = df.head(1) HighestIncome90s = df.loc[(df['year'] >= 1990) & (df['year'] <= 1999), 'income'].nlargest() HighestIncome90s=测向头(1)
HighestIncome90s = df.head(1)
HighestIncome90s = df.loc[(df['year'] >= 1990) & (df['year'] <= 1999), 'income'].nlargest()
HighestIncome90s=测向头(1)
HighestIncome90s=df.loc[(df['year']>=1990)和(df['year']
我希望它也显示所有其他列
如果你使用
,
如
max_income\u idx=df.income[(df['year']>=1990)和(df['year']
我希望它也显示所有其他列
如果你使用
,
如
max\u income\u idx=df.income[(df['year']>=1990)和(df['year']让我们尝试使用sort\u值修复代码
df = df.sort_values('income',ascending=False)
HighestIncome90s = df
HighestIncome90s = df.loc[(df['year'] >= 1990) & (df['year'] <= 1999), 'income'].head(1)
df=df.sort_值('income',升序=False)
最高ncome90s=df
HighestIncome90s=df.loc[(df['year']>=1990)和(df['year']=1990)和(df['year']让我们尝试使用排序值修复代码
df = df.sort_values('income',ascending=False)
HighestIncome90s = df
HighestIncome90s = df.loc[(df['year'] >= 1990) & (df['year'] <= 1999), 'income'].head(1)
df=df.sort_值('income',升序=False)
最高ncome90s=df
HighestIncome90s=df.loc[(df['year']>=1990)和(df['year']=1990)和(df['year']第一步:此代码用于限制从1990年到1999年的年份
df = df.query('year >= 1990 & age <= 1999')
第一步:此代码用于限制从1990年到1999年的年份
df = df.query('year >= 1990 & age <= 1999')
据我所知,您的源数据框包含
每种产品和年份,例如:
year product income
0 1980 P1 120.15
1 1990 P1 120.15
2 1992 P1 140.20
3 1994 P1 160.51
4 1996 P1 171.04
5 1988 P2 140.17
6 1991 P2 145.17
7 1993 P2 160.42
8 1995 P2 181.73
9 1989 P3 140.17
10 1992 P3 175.17
11 1994 P3 240.42
12 1996 P3 315.73
但您只对1990年到1999年间的行感兴趣
然后,您要计算每种产品的总收入(整个10年期间)。
执行此操作的代码是:
wrk = df.query('year.between(1990,1999)').groupby('product').income.sum()
目前,对于上述源数据,我们有以下内容
系列:
(左栏为指数,右栏为各指数的总收入。)
产品)
并获得最终结果(畅销书产品和总收入)
它带来了)运行:
它也是一个系列,但只包含一个元素:
product
P3 731.32
Name: income, dtype: float64
(P3为指数,731.32为总收入)
所有其他解决方案(到目前为止提供)为客户提供了最大的收入
a一年(利息期内),而非总额
此期间的收入。据我所知,您的源数据框包含
每种产品和年份,例如:
year product income
0 1980 P1 120.15
1 1990 P1 120.15
2 1992 P1 140.20
3 1994 P1 160.51
4 1996 P1 171.04
5 1988 P2 140.17
6 1991 P2 145.17
7 1993 P2 160.42
8 1995 P2 181.73
9 1989 P3 140.17
10 1992 P3 175.17
11 1994 P3 240.42
12 1996 P3 315.73
但您只对1990年到1999年间的行感兴趣
然后,您要计算每种产品的总收入(整个10年期间)。
执行此操作的代码是:
wrk = df.query('year.between(1990,1999)').groupby('product').income.sum()
目前,对于上述源数据,我们有以下内容
系列:
(左栏为指数,右栏为各指数的总收入。)
产品)
并获得最终结果(畅销书产品和总收入)
它带来了)运行:
它也是一个系列,但只包含一个元素:
product
P3 731.32
Name: income, dtype: float64
(P3为指数,731.32为总收入)
所有其他解决方案(到目前为止提供)为客户提供了最大的收入
a一年(利息期内),而非总额
这一时期的收入。如果您从dataframe提供一个样本就好了。如果您从dataframe提供一个样本就好了。