我有一个来自卡格尔泰坦尼克号比赛的CSV文件如下。此文件的记录格式由以下列描述: PassengerId、Sex、Pclass、Name、性别、年龄、SibSp、Parch、机票、机票、船舱、登船。我想分析这个文件中的数据,并检查在一个群体中旅行的乘客是否有一个更好的存活率。对于这一点,我假设一组中的所有乘客的机票价值是相同的。
我在MS Access中加载了CSV,并执行了以下查询以获得所需的结果集:
SELECT a.Ticket, a.PassengerId, a.Survived
FROM train a
WHERE 1 < (SELECT COUNT(*) FROM train b WHERE b.Ticket = a.Ticket)
ORDER BY a.Ticket如果不编写循环,我就无法提取与上面相同的结果集。
发布于 2017-04-23 18:32:08
让我们看看这是否匹配:
df.groupby(['Ticket']).filter(lambda x: x.Ticket.count()>1)[['Ticket','PassengerId','Survived']]或者根据杰兹拉尔的建议:
df.groupby(['Ticket']).filter(lambda x: len(x)>1)[['Ticket','PassengerId','Survived']]我在票证上使用groupby,然后使用filter将数据过滤到该票证组中的计数大于1的记录中。
https://stackoverflow.com/questions/43574675
复制相似问题