Eu tenho um dataframe df:
20060930 10.103 NaN 10.103 7.981
20061231 15.915 NaN 15.915 12.686
20070331 3.196 NaN 3.196 2.710
20070630 7.907 NaN 7.907 6.459
Então eu quero selecionar linhas com certos números de sequência indicados em uma lista, suponha que aqui seja [1,3], depois à esquerda:
20061231 15.915 NaN 15.915 12.686
20070630 7.907 NaN 7.907 6.459
Como ou qual função pode fazer isso?
você também pode usar o iloc:
Isso não funcionará se os índices em seu dataframe não corresponderem à ordem das linhas devido a cálculos anteriores. Nesse caso, use:
... como sugerido em outras respostas.
fonte
Outra forma (embora seja um código mais longo), mas é mais rápido do que os códigos acima. Verifique usando a função% timeit:
PS: Você descobre o motivo
fonte
df.index.get_level_values(0).isin
para multiPara grandes conjuntos de dados, é eficiente para a memória ler apenas as linhas selecionadas por meio do
skiprows
parâmetro.Exemplo
Isso agora retornará um DataFrame de um arquivo que ignora todas as linhas, exceto 1 e 3.
Detalhes
Dos documentos :
Este recurso funciona na versão pandas 0.20.0+. Veja também o problema correspondente e uma postagem relacionada .
fonte