pandas 计算列中多个变量的持续时间(年)

ubof19bj  于 2023-02-07  发布在  其他
关注(0)|答案(3)|浏览(137)

我试图计算每家商店的营业时间(以年为单位),下面是数据集的一个示例:
| 年份|商店名称|
| - ------|- ------|
| 二○ ○ ○年|商店A|
| 二○ ○一年|商店A|
| 二○ ○二年|商店A|
| 二○ ○三年|商店A|
| 二○ ○ ○年|B店|
| 二○ ○一年|B店|
| 二○ ○二年|B店|
| 二○ ○ ○年|商店C|
我不知道如何计算每个商店名称的最大年和最小年的差异,因为它们都在同一列中。我是否应该使用Pandas将其放入新列中?

7ajki6be

7ajki6be1#

您需要使用groupby

g = df.groupby('store name')['year']

out = g.max()-g.min()
f1tvaqid

f1tvaqid2#

您可以使用groupbytransform在同一个 Dataframe 中创建一个附加列。

df["years open"] = df.groupby("store name")["year"].transform(lambda x: x.max()-x.min())
2uluyalo

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

相关问题