Python 在dataframe中使用查询语句选择列

Python 在dataframe中使用查询语句选择列,python,pandas,dataframe,Python,Pandas,Dataframe,我有以下数据框。每个点与每个类的“n”类点组合,每个组合的值为0或1。 现在,对于每一个点,我想得到一个类,它的最大值是“0”。 输出: 第1-a部分 第2-b部分 我试过使用哈希表,但它有点麻烦。什么是数据帧查询 +------+-------+-------+--+--+--+ |第124页类|值| | || +------+-------+-------+--+--+--+ |第1部分| a | 0 | | || |第1部分| a | 0 | | || |第1部分| a | 1 | ||

我有以下数据框。每个点与每个类的“n”类点组合,每个组合的值为0或1。 现在,对于每一个点,我想得到一个类,它的最大值是“0”。 输出: 第1-a部分 第2-b部分

我试过使用哈希表,但它有点麻烦。什么是数据帧查询

+------+-------+-------+--+--+--+
|第124页类|值| | ||
+------+-------+-------+--+--+--+
|第1部分| a | 0 | | ||
|第1部分| a | 0 | | ||
|第1部分| a | 1 | ||
|第1部分| b | 0 | | ||
|第1部分| b | 1 | ||
|第1部分| b | 1 | ||
|第2部分| a | 1 | ||
|第2部分| a | 1 | ||
|第2部分| a | 1 | ||
|第2部分| b | 0 | | ||
|第2部分| b | 0 | | ||
|第2部分| b | 0 | | ||
|      |       |       |  |  |  |
+------+-------+-------+--+--+--+

仅首先筛选
0
行,然后按其对输出进行排序,因此有必要先查看LCT
索引
索引值:

df = (df[df['value'] == 0].groupby('Pt.')['class']
                          .apply(lambda x: x.value_counts().index[0])
                          .reset_index(name='top1'))
print (df)
    Pt. top1
0  Pt.1    a
1  Pt.2    b
过滤的类似替代方案:

df = (df.query("value == 0")
        .groupby('Pt.')['class']
        .apply(lambda x: x.value_counts().index[0])
        .reset_index(name='top1'))
print (df)
    Pt. top1
0  Pt.1    a
1  Pt.2    b

为什么
r
标记在这里?因为数据帧操作在r和pythonThanks中是相似的!工作得很好!