繁体   English   中英

每组在熊猫中进行所有可能的组合

[英]Making all possible combinations per group in Pandas

我有一个非常大的CSV文件,具有122290行。 顺序如下:

Feature, Person
Fever, Pat1
Headache, Pat1
Burping, Pat1
Fever, Pat2
Obese, Pat2
Headache, Pat2
Jaundice, Pat2

我想做一张新桌子。 这张表是每个病人的特征的组合...我想看看某些症状是否显示出发生现象。 我使用csv.reader使用Python进行了此操作。 但是因为它一直在循环,所以122290行需要花费几个小时。 每个病人大约有 305个症状...有405例患者。 我不想重复像Feature1 == Feature2 ...我想知道在Pandas中是否也有可能...如果是这样,您能指出您将如何解决这个问题吗? 谢谢!

Feature1, Feature2, Person
Fever, Headache, Pat1
Fever, Burping, Pat1
Heache, Burping, Pat1
Fever, Obese, Pat2
Fever, Headache, Pat2
Fever, Jaundice, Pat2
Obese, Headache, Pat2
Obese, Jaundice, Pat2
Headache, Jaundice, Pat2

使用merge 您可以将DataFrame与自身进行自我合并,然后删除多余的对(其中特征反转或与其自身配对)。

df2 = pandas.merge(df, df, on='Person', suffixes=['1', '2'])
df2 = df2[df2.Feature1 < df2.Feature2]

结果:

Person  Feature1  Feature2
Pat1       Fever  Headache
Pat1     Burping     Fever
Pat1     Burping  Headache
Pat2       Fever     Obese
Pat2       Fever  Headache
Pat2       Fever  Jaundice
Pat2    Headache     Obese
Pat2    Headache  Jaundice
Pat2    Jaundice     Obese

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM