python中的关联组
在预处理之后,我有一个最后的数据帧,其中包含“timestamp”、“group”、“person1”、“person2”列。我试图弄清楚如何编写我的需求,或者想知道是否可以使用python。 我试图提取的是每个组中的组。例如:在G0组中,A与B会面,B与C会面,A与D会面。这意味着ABCD在该组中形成一个组。每个组中可以有多个组(例如,在组G1中)。我该怎么做?我可以应用什么逻辑或代码来提取这个?我找了很多,但毫无帮助 数据帧样本和预期输出的pic为: 样本数据:python中的关联组,python,pandas,dataframe,associations,Python,Pandas,Dataframe,Associations,在预处理之后,我有一个最后的数据帧,其中包含“timestamp”、“group”、“person1”、“person2”列。我试图弄清楚如何编写我的需求,或者想知道是否可以使用python。 我试图提取的是每个组中的组。例如:在G0组中,A与B会面,B与C会面,A与D会面。这意味着ABCD在该组中形成一个组。每个组中可以有多个组(例如,在组G1中)。我该怎么做?我可以应用什么逻辑或代码来提取这个?我找了很多,但毫无帮助 数据帧样本和预期输出的pic为: 样本数据: df = pd.DataF
df = pd.DataFrame(
{
"timestamp": ['25-06-2020 09:29','25-06-2020 09:29','25-06-2020 09:31','25-06-2020 09:32','25-06-2020 09:33','25-06-2020 09:33','25-06-2020 11:17','25-06-2020 11:17','25-06-2020 11:17','25-06-2020 11:17','25-06-2020 12:29','25-06-2020 12:29','25-06-2020 12:30','25-06-2020 12:30'],
"group": ['G0','G0','G0','G0','G0','G0','G1','G1','G1','G1','G1','G2','G2','G2'],
"person1": ['A','A','B','A','X','Z','A','B','L','X','Y','L','N','O'],
"person2": ['B','B','C','D','Y','N','B','C','M','Y','Z','M','O','P']
}
)
这当然是有趣的事情,特别是考虑到目前的大流行。听起来你需要帮助你。Python可以通过字典和自定义类来实现这一点
此外,它可能也有一些帮助。您需要根据自己的需求调整其
find_all_graphs()
函数。您可以使用networkx库:
输出:
timestamp group person1 person2 subgroup
0 25-06-2020 09:29 G0 A B DACB
1 25-06-2020 09:29 G0 A B DACB
2 25-06-2020 09:31 G0 B C DACB
3 25-06-2020 09:32 G0 A D DACB
4 25-06-2020 09:33 G0 X Y YX
5 25-06-2020 09:33 G0 Z N NZ
6 25-06-2020 11:17 G1 A B ACB
7 25-06-2020 11:17 G1 B C ACB
8 25-06-2020 11:17 G1 L M ML
9 25-06-2020 11:17 G1 X Y ZYX
10 25-06-2020 12:29 G1 Y Z ZYX
11 25-06-2020 12:29 G2 L M ML
12 25-06-2020 12:30 G2 N O ONP
13 25-06-2020 12:30 G2 O P ONP
min max
subgroup
ACB 2020-06-25 11:17:00 2020-06-25 11:17:00
DACB 2020-06-25 09:29:00 2020-06-25 09:32:00
ML 2020-06-25 11:17:00 2020-06-25 12:29:00
NZ 2020-06-25 09:33:00 2020-06-25 09:33:00
ONP 2020-06-25 12:30:00 2020-06-25 12:30:00
YX 2020-06-25 09:33:00 2020-06-25 09:33:00
ZYX 2020-06-25 11:17:00 2020-06-25 12:29:00
分组:
df['timestamp'] = pd.to_datetime(df['timestamp'])
df.groupby('subgroup')['timestamp'].agg(['min', 'max'])
输出:
timestamp group person1 person2 subgroup
0 25-06-2020 09:29 G0 A B DACB
1 25-06-2020 09:29 G0 A B DACB
2 25-06-2020 09:31 G0 B C DACB
3 25-06-2020 09:32 G0 A D DACB
4 25-06-2020 09:33 G0 X Y YX
5 25-06-2020 09:33 G0 Z N NZ
6 25-06-2020 11:17 G1 A B ACB
7 25-06-2020 11:17 G1 B C ACB
8 25-06-2020 11:17 G1 L M ML
9 25-06-2020 11:17 G1 X Y ZYX
10 25-06-2020 12:29 G1 Y Z ZYX
11 25-06-2020 12:29 G2 L M ML
12 25-06-2020 12:30 G2 N O ONP
13 25-06-2020 12:30 G2 O P ONP
min max
subgroup
ACB 2020-06-25 11:17:00 2020-06-25 11:17:00
DACB 2020-06-25 09:29:00 2020-06-25 09:32:00
ML 2020-06-25 11:17:00 2020-06-25 12:29:00
NZ 2020-06-25 09:33:00 2020-06-25 09:33:00
ONP 2020-06-25 12:30:00 2020-06-25 12:30:00
YX 2020-06-25 09:33:00 2020-06-25 09:33:00
ZYX 2020-06-25 11:17:00 2020-06-25 12:29:00
对实际上,当前的用例是关于流行病的:),但我应该在2天内给出输出。。不管怎样,我都会经历这个:)非常感谢