我试图计算每家商店的营业时间(以年为单位),下面是数据集的一个示例:| 年份|商店名称|| - ------|- ------|| 二○ ○ ○年|商店A|| 二○ ○一年|商店A|| 二○ ○二年|商店A|| 二○ ○三年|商店A|| 二○ ○ ○年|B店|| 二○ ○一年|B店|| 二○ ○二年|B店|| 二○ ○ ○年|商店C|我不知道如何计算每个商店名称的最大年和最小年的差异,因为它们都在同一列中。我是否应该使用Pandas将其放入新列中?
7ajki6be1#
您需要使用groupby:
groupby
g = df.groupby('store name')['year'] out = g.max()-g.min()
f1tvaqid2#
您可以使用groupby和transform在同一个 Dataframe 中创建一个附加列。
transform
df["years open"] = df.groupby("store name")["year"].transform(lambda x: x.max()-x.min())
2uluyalo3#
您还可以用途:
out = df.groupby('store name').agg(['min', 'max']).diff(axis=1).iloc[:, -1] print(out) # Output store name Store A 3 Store B 2 Store C 0 Name: (year, max), dtype: int64
3条答案
按热度按时间7ajki6be1#
您需要使用
groupby
:f1tvaqid2#
您可以使用
groupby
和transform
在同一个 Dataframe 中创建一个附加列。2uluyalo3#
您还可以用途: