![](/img/trans.png)
[英]how to check column value of one data frame how many times in another dataframe column pandas?
[英]Python Pandas: Counting how many times value from one data frame appears in another dataframe, filering on multiple conditions
我有个问题。 我正在尝试从 df1 中计算值的次数:
Record
v:12:14
v:14:18
v:15:19
出现在 df2 中,当 df2 在多个条件下被过滤时:
df2:
Patient Test Treatment Record
1 A 15 v:12:14
2 A 30 v:14:18
3 C 15 v:15:19
4 C 20 v:15:19
1 B 15 v:12:14
2 B 15 v:14:18
3 A 20 v:12:14
4 B 30 v:15:19
基本上以这样的矩阵结尾:
Patient Record A:15 A:30 C:15 C:20 B:15 A:20 B:30
1 v:12:14 1 0 0 0 1 1 0
2 v:14:18 0 1 0 0 1 0 0
3 v:15:19 0 0 1 1 0 0 1
4 v:15:19 0 0 1 1 0 0 1
3 v:12:14 1 0 0 0 1 1 0
有没有人有任何想法? 我现在通过迭代两个数据帧来做,但我觉得它可以做得更快更好。
在此先感谢您的帮助!
您可以使用数据透视表执行此操作:
matrix = df2.pivot_table(
index=['Patient', 'Record'],
columns=['Test', 'Treatment'],
aggfunc='size',
).fillna(0).astype(int)
输出:
Test A B C
Treatment 15 20 30 15 30 15 20
Patient Record
1 v:12:14 1 0 0 1 0 0 0
2 v:14:18 0 0 1 1 0 0 0
3 v:12:14 0 1 0 0 0 0 0
v:15:19 0 0 0 0 0 1 0
4 v:15:19 0 0 0 0 1 0 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.