如何将重复的值计算为每天一个



猫收容所有很多猫住在那里。经常进入收容所的流浪猫会得到一个装有射频标签的项圈。然而,有时并不是所有的猫都每天进入猫收容所。

在避难所的门上有一个传感器,当猫进入时,它可以检测到一个装有射频标签的项圈。因此,一只猫每天进出收容所都能被检测到好几次。这是传感器数据(简化(。

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"的猫每天出现几次,但它仍然算作一只(。

您可以使用.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

您想要的输出是什么?

df[df['Name']=='A'].drop_duplicates(),你知道猫"A"在收容所里呆了多少天

相关内容

  • 没有找到相关文章

最新更新