Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在一列中查找另一列中给定范围的最大值_Python_Pandas_Dataframe - Fatal编程技术网

Python 在一列中查找另一列中给定范围的最大值

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)

我对熊猫和数据帧很陌生。我想从1990年至1999年期间收入最高的数据框中找到产品(“产品”)

我的最佳尝试仅给出数据框中的行号和收入,尽管我希望它也显示所有其他列

这是我最好的尝试:

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提供一个样本就好了。