Python 3.x 最大计数取决于两列
我有一个数据帧,我想得到电影和系列的最大计数数及其对应年份。df如下所示:Python 3.x 最大计数取决于两列,python-3.x,pandas,Python 3.x,Pandas,我有一个数据帧,我想得到电影和系列的最大计数数及其对应年份。df如下所示: df = pd.DataFrame( [ ("movie", "2020", 45), ("movie", "2019", 37), ("series", "2018", 16), ("series", "2
df = pd.DataFrame(
[
("movie", "2020", 45),
("movie", "2019", 37),
("series", "2018", 16),
("series", "2010", 45),
],
columns=("type", "year", "count"),
)
我所尝试的:
df[df['type'] == "series"].max()
df[df['type'] == "movie"].max()
但是,这似乎不起作用,因为它返回最大年份和最大计数。例如,对于series one,它将返回:
type series
year 2018
count 45
dtype: object
它应该返回:
type series
year 2010
count 45
dtype: object
我应该如何构建查询,使其返回对应年份的最高计数
谢谢您可以尝试排序并删除重复项:
df.sort_values('count').drop_duplicates('type', keep='last')
输出:
type year count
0 movie 2020 45
3 series 2010 45
您可以尝试对重复项进行排序和删除:
df.sort_values('count').drop_duplicates('type', keep='last')
输出:
type year count
0 movie 2020 45
3 series 2010 45
尝试使用
idxmax
out = df.loc[df.groupby('type')['count'].idxmax()]
Out[200]:
type year count
0 movie 2020 45
3 series 2010 45
尝试使用
idxmax
out = df.loc[df.groupby('type')['count'].idxmax()]
Out[200]:
type year count
0 movie 2020 45
3 series 2010 45