如何在Pandas数据框中选择基于行的类别

时间:2015-11-01 23:41:12

标签: python pandas dataframe categories

这真是微不足道,但不能相信我已经闲逛了一个小时仍然可以找到答案,所以在这里:

df.loc[df.cats == "a"]

df looks like this

我的问题是如何选择它的&#34;猫&#34;列的类别是&#34; a&#34;。我知道<?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN" xmlns="http://logging.apache.org/log4j/2.0/config"> <Properties> <Property name="LOG_DIR">logs</Property> <Property name="ARCHIVE">${LOG_DIR}</Property> <Property name="LOG_PREFIX">logname-</Property> <Property name="FILE_PATTERN">%d{ISO8601}\t%r\t%t\t%-5p\t%c{1}\t%m%n</Property> <Property name="CONSOLE_PATTERN">[%d{ISO8601}|%-5p|%c{1}|%M|%L] %m%n</Property> </Properties> <Appenders> <File name="FILE" fileName="logname.log" append="true"> <PatternLayout pattern="${FILEPATTERN}" /> </File> <RollingFile name="fileWriter" fileName="${LOG_DIR}/${LOG_PREFIX}.log" filePattern="${ARCHIVE}/${LOG_PREFIX}-%d{yyyy-MM-dd-hh-mm}.log" immediateFlush="false"> <PatternLayout pattern="${FILE_PATTERN}" /> <TimeBasedTriggeringPolicy/> </RollingFile> <Console name="STDOUT" target="SYSTEM_OUT"> <PatternLayout pattern="${CONSOLE_PATTERN}" /> </Console> <Async name="Async-File"> <AppenderRef ref="FILE" /> </Async> <Async name="Async-Console"> <AppenderRef ref="STDOUT" /> </Async> </Appenders> <Loggers> <Root> <AppenderRef ref="Async-Console" level="error" /> <AppenderRef ref="Async-File" level="error" /> </Root> </Loggers> </Configuration> 会起作用,但它基于元素上的相等性。有没有办法根据类别水平进行选择?

3 个答案:

答案 0 :(得分:4)

这有效:

df.cats[df.cats=='a']

<强>更新

问题已更新。新解决方案:

df[df.cats.cat.categories == ['a']]

答案 1 :(得分:1)

您可以使用df.cats.cat.categories查询分类列表,其将输出打印为

Index(['a', 'b'], dtype='object')

在这种情况下,要选择类别为'a'的{​​{1}}行,只需使用:

df.cats.cat.categories['0']

答案 2 :(得分:0)

library(shiny)

jscode <- '
$(function() {
var $els = $("[data-proxy-click]");
$.each(
$els,
function(idx, el) {
var $el = $(el);
var $proxy = $("#" + $el.data("proxyClick"));
$el.keydown(function (e) {
if (e.keyCode == 13) {
$proxy.click();
}
});
}
);
});
'

ui <- fluidPage(
  actionButton('modal', 'Modal Window'),
  textOutput("input_text")
)

server <- function(input, output, session) {

  observeEvent(input$modal, {
    showModal(modalDialog(
      actionButton("button", "Button"),
      tags$head(tags$script(HTML(jscode))),
      tagAppendAttributes(
        textInput("text", "Text", NULL),
        `data-proxy-click` = "button"
      )
    ))
  })

  observeEvent(input$button, {
    removeModal()
  })

  output$input_text <- renderText({
    input$button
    paste0("You typed:", isolate(input$text))
  })
}

shinyApp(ui, server)