在Pandas

时间:2015-12-13 23:04:08

标签: python csv pandas

我有一个非常大的CSV文件,包含122290行。订单如下:

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

我想制作一张新桌子。该表是每位患者的特征组合......我想看看某些症状是否显示出现的集群。我用Python和csv.reader做了这个。但因为它一直在循环,所以需要几个小时才能获得122290行。每个病人都有约。 305症状......有405名患者。我不想要像Feature1 == Feature2这样的重复...我想知道这是否也可能在熊猫中...如果是这样,你能说出你将如何开始解决这个问题吗?谢谢!

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

1 个答案:

答案 0 :(得分:3)

使用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
相关问题