猫收容所有许多猫住在那里。经常进入庇护所的流浪猫被给予一个项圈,里面有射频标签。然而,有时并不是所有的猫进入猫的庇护所每天。
在庇护所的门口,有一个传感器,当猫进入时,它检测带有射频标签的项圈。因此,每天有一只猫在收容所内外被检测到。这是传感器数据(简化)。
data = {'Date': ['01-09-2022', '01-09-2022', '01-09-2022', '01-09-2022', '02-09-2022', '02-09-2022', '02-09-2022', '02-09-2022', '03-09-2022', '03-09-2022', '03-09-2022', '03-09-2022', '03-09-2022'],
'Name': ['A', 'A', 'A', 'A', 'B', 'C', 'C', 'B', 'D', 'C', 'C', 'D', 'A']}
df = pd.DataFrame(data)
df
像这样的数据
Date Name
0 01-09-2022 A
1 01-09-2022 A
2 01-09-2022 A
3 01-09-2022 A
4 02-09-2022 B
5 02-09-2022 C
6 02-09-2022 C
7 02-09-2022 B
8 03-09-2022 D
9 03-09-2022 C
10 03-09-2022 C
11 03-09-2022 D
12 03-09-2022 A
问题是,我怎么知道一只叫"A“的猫每三天来收容所几天?(虽然这只名为"A“的猫每天出现几次,但它仍然算是一只)。
发布于 2022-10-10 12:36:37
您可以使用.groupby()查看一天中猫的次数,以及猫进入的不同日子。
print(ans.groupby(["Name", "Date"])["Date"].count())
你可以得到这样的输出:
Name Date
A 01-09-2022 4
03-09-2022 1
B 02-09-2022 2
C 02-09-2022 2
03-09-2022 2
D 03-09-2022 2
Name: Date, dtype: int64
然后,保存这个,检查一只在不同的日子里进入的猫。
df_count = ans.groupby(["Name", "Date"]).agg({"Date": "count"})
print(df_count.groupby("Name").count())
我想,这就是你问题的答案。
Date
Name
A 2
B 1
C 2
D 1
发布于 2022-10-10 12:01:39
你想要的输出是什么?
做df[df['Name']=='A'].drop_duplicates()
你知道猫“A”进收容所有多少天吗
https://stackoverflow.com/questions/74014567
复制相似问题