English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

DataFrame do Pandas

   Basic Operations of Pandas DataFrame

DataFrame is a two-dimensional data structure, that is, data is aligned in a tabular form across rows and columns.

DataFrame Functions

Potential columns are of different types Variable size Labeled axis (rows and columns) Arithmetic operations can be performed on rows and columns

Structure

pandas.Series

The structure of Series is as follows:

Let's assume we are using student data to create a data frame.

We can consider it as a SQL table or an electronic spreadsheet data representation.

pandas.DataFrame

The following constructors can be used to create a pandas DataFrame-

 pandas.DataFrame(data, index, columns, dtype, copy)

Parameter Description:

data: The data is used in various forms, such as ndarray, series, mapping, list, dict, constants, and another DataFrame. index: For row labels, if no index is passed, the index used for the result frame is Optional Default np.arange(n). columns: Para rótulos de coluna, a sintaxe padrão opcional é}}-np.arange(n). Isso é válido apenas quando não for passado um índice. dtype: Tipo de dados de cada coluna. copy: Se o valor padrão for False, este comando (ou qualquer comando dele) é usado para copiar dados.

Criar DataFrame

Pode-se criar um DataFrame pandas com várias entradas.-

Listas dict Séries Numpy ndarrays Outro DataFrame

Na parte subsequente deste capítulo, veremos como usar essas entradas para criar DataFrames.

Criar DataFrame Vazio

Pode criar um DataFrame básico que é o DataFrame Vazio.

 # Nome do arquivo: pandas.py
 # author by: pt.oldtoolbag.com 
 # Importar pacote dependente pandas e definir apelido
 import pandas as pd
 df = pd.DataFrame()
 print(df)

Resultados da Execução:

 DataFrame Vazio
 Colunas: []
 Índice: []

Criar DataFrame a partir de Listas

 # Nome do arquivo: pandas.py
 # author by: pt.oldtoolbag.com 
 # Importar pacote dependente pandas e definir apelido
 import pandas as pd
 data = [1,2,3,4,5]]
 df = pd.DataFrame(data)
 print(df)

Resultados da Execução:

 0
 0 1
 1 2
 2 3
 3 4
 4 5
 # Nome do arquivo: pandas.py
 # author by: pt.oldtoolbag.com 
 # Importar pacote dependente pandas e definir apelido
 import pandas as pd
 data = [['Alex',10],['Bob',12],['Clarke',13]]
 df = pd.DataFrame(data, columns=['Nome','Idade'])
 print(df)

Resultados da Execução:

       Nome Idade
 0 Alex     10
 1     Bob      12
 2     Clarke   13
 # Nome do arquivo: pandas.py
 # author by: pt.oldtoolbag.com 
 # Importar pacote dependente pandas e definir apelido
 import pandas as pd
 data = [['Alex',10],['Bob',12],['Clarke',13]]
 df = pd.DataFrame(data, columns=['Nome','Idade'], dtype=float)
 print df

Resultados da Execução:

 
      Nome Idade
 0 Alex   10.0
 1    Bob    12.0
 2    Clarke 13.0
注意:O parâmetro dtype muda o tipo da coluna Idade para float.

de ndarray / Dict de Lista cria um DataFrame

Todos os ndarray devem ter o mesmo comprimento. Se for passado um índice, o comprimento do índice deve ser igual ao comprimento do array.
Se não for passado um índice, o índice padrão será range(n), onde n é o comprimento do array.

 # Nome do arquivo: pandas.py
 # author by: pt.oldtoolbag.com 
 # Importar pacote dependente pandas e definir apelido
 import pandas as pd
 data = {'Nome':['Tom', 'Jack', 'Steve', 'Ricky'], 'Idade':[28,34,29,42])
 df = pd.DataFrame(data)
 print(df)

Resultados da Execução:

 
    Idade Nome
 0   28   Tom
 1   34   Jack
 2   29   Steve
 3   42   Ricky
注意:respeitando o valor 0、1、2、3Eles são índices padrão atribuídos a cada objeto usando a faixa de função (n).

Usamos arrays para criar DataFrames com índice.

 # Nome do arquivo: pandas.py
 # author by: pt.oldtoolbag.com 
 # Importar pacote dependente pandas e definir apelido
 import pandas as pd
 data = {'Nome':['Tom', 'Jack', 'Steve', 'Ricky'], 'Idade':[28,34,29,42])
 df = pd.DataFrame(data, index=['rank1','rank2','rank3','rank4'])
 print(df)

Resultados da Execução:

 
       Idade Nome
 rank1 28 Tom
 rank2 34 Jack
 rank3 29 Steve
 rank4 42 Ricky
注意:index参数为每行分配一个索引。

从字典列表创建DataFrame

字典列表可以作为输入数据传递以创建DataFrame。默认情况下,字典键被用作列名。
下面的示例演示如何通过传递字典列表来创建DataFrame。

 # Nome do arquivo: pandas.py
 # author by: pt.oldtoolbag.com 
 # Importar pacote dependente pandas e definir apelido
 import pandas as pd
 data = [{'a': 1, 'b': 2}, {'a': 5, 'b': 10, 'c': 20}]
 df = pd.DataFrame(data)
 print(df)

Resultados da Execução:

     a b c
 0 1 2 NaN
 1 5 10 20.0
注意:NaN(非数字)会附加在缺失区域中。

下面的示例演示如何通过传递字典列表和行索引来创建DataFrame。

 # Nome do arquivo: pandas.py
 # author by: pt.oldtoolbag.com 
 # Importar pacote dependente pandas e definir apelido
 import pandas as pd
 data = [{'a': 1, 'b': 2}, {'a': 5, 'b': 10, 'c': 20}]
 df = pd.DataFrame(data, index=['first', 'second'])
 print(df)

Resultados da Execução:

          a b c
 first 1 2 NaN
 second 5 10 20.0

下面的示例演示如何创建包含字典,行索引和列索引的列表的DataFrame。

 # Nome do arquivo: pandas.py
 # author by: pt.oldtoolbag.com 
 # Importar pacote dependente pandas e definir apelido
 import pandas as pd
 data = [{'a': 1, 'b': 2}, {'a': 5, 'b': 10, 'c': 20}]
 # 有两个列索引,值与字典键相同
 df1 = pd.DataFrame(data, index=['first', 'second'], columns=['a', 'b'])
 # 有两个列索引
 df2 = pd.DataFrame(data, index=['first', 'second'], columns=['a', 'b', "c":1'])
 print(df1)
 print(df2)

Resultados da Execução:

 #df1 output
       a b
 first 1 2
 second 5 10
 #df2 output
       a b1
 first 1 NaN
 second 5 NaN
注意:df2 DataFrame是使用除字典键以外的列索引创建的;因此,将NaN附加到位。而df1是使用与字典键相同的列索引创建的,因此添加了NaN。

从Dict Series创建DataFrame

可以传递系列字典以形成DataFrame。结果索引是所有通过的系列索引的并集。

 # Nome do arquivo: pandas.py
 # author by: pt.oldtoolbag.com 
 # Importar pacote dependente pandas e definir apelido
 import pandas as pd
 d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
    'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}
 df = pd.DataFrame(d
 print(df)

Resultados da Execução:

   one two
 a 1.0 1
 b 2.0 2
 c 3.0 3
 d NaN 4

对于第一个系列,没有传递标签'd',但是结果是,对于d标签,附加了NaN。
现在让我们通过示例了解列的选择,添加和删除。

列查询

我们将从DataFrame中选择一列来了解这一点。

 # Nome do arquivo: pandas.py
 # author by: pt.oldtoolbag.com 
 # Importar pacote dependente pandas e definir apelido
 
 import pandas as pd
 d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
    'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}
 df = pd.DataFrame(d
 print(df ['one'])

Resultados da Execução:

   a 1.0
 b 2.0
 c 3.0
 d NaN
 Name: one, dtype: float64

列添加

我们将通过在现有数据框中添加新列来了解这一点。

# Nome do arquivo: pandas.py
 # author by: pt.oldtoolbag.com 
 # Importar pacote dependente pandas e definir apelido
 import pandas as pd
 d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
    'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}
 df = pd.DataFrame(d
 #通过传递新序列,向具有列标签的现有 DataFrame 对象添加新列
 print ("通过作为 Series 传递添加新列:")
 df['three']=pd.Series([10,20,30],index=['a','b','c'])
 print df
 print("Add new column using existing columns in DataFrame:")
 df['four']=df['one']+df['three']
 print(df)

Resultados da Execução:

 Add new column by passing as Series:
 one two three
 a 1.0 1 10.0
 b 2.0 2 20.0
 c 3.0 3 30.0
 d NaN 4 NaN
 Add new column using existing columns in DataFrame:
 one two three four
 a 1.0 1 10.0 11.0
 b 2.0 2 20.0 22.0
 c 3.0 3 30.0 33.0
 d NaN 4 NaN NaN

Deletar coluna

Pode deletar ou弹出列;让我们通过一个实例来了解如何。

 # Nome do arquivo: pandas.py
 # author by: pt.oldtoolbag.com 
 # Importar pacote dependente pandas e definir apelido
 import pandas as pd
 d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']), 
    'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd']), 
    'three' : pd.Series([10,20,30], index=['a','b','c'])}
 df = pd.DataFrame(d
 print("Our dataframe is:")
 print(df)
 # using del function
 print("Deleting the first column using del function:")
 del df['one']
 print(df)
 # using pop function
 print("Deleting another column using POP function:")
 df.pop('two')
 print(df)

Resultados da Execução:

 Our dataframe is:
 one three two
 a 1.0 10.0 1
 b 2.0 20.0 2
 c 3.0 30.0 3
 d NaN NaN 4
 Deleting the first column using del function:
   three two
 a 10.0 1
 b 20.0 2
 c 30.0 3
 d NaN 4
 Deleting another column using POP function:
   three
 a 10.0
 b 20.0
 c 30.0
 d NaN

Consulta, adição e exclusão de linhas

Agora, vamos entender a seleção, adição e exclusão de linhas por meio de um exemplo. Vamos começar com o conceito de seleção.

Consulta por rótulo

Pode escolher linhas passando o rótulo da linha para a função loc.

 # Nome do arquivo: pandas.py
 # author by: pt.oldtoolbag.com 
 # Importar pacote dependente pandas e definir apelido
 import pandas as pd
 d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']), 
    'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}
 df = pd.DataFrame(d
 print(df.loc['b'])

Resultados da Execução:

 
   one 2.0
 two 2.0
 Nome: b, dtype: float64

O resultado é uma série com rótulos como nomes das colunas do DataFrame e o nome da série é usado para recuperar seus rótulos.

Consulta por posição inteira

Pode escolher linhas passando um número inteiro para a função iloc.

 # Nome do arquivo: pandas.py
 # author by: pt.oldtoolbag.com 
 # Importar pacote dependente pandas e definir apelido
 import pandas as pd
 d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
    'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}
 df = pd.DataFrame(d
 print(df.iloc[2])

Resultados da Execução:

 
   one 3.0
 two 3.0
 Nome: c, dtype: float64

Fatia de linhas

Pode usar o operador ':' para selecionar linhas.

 # Nome do arquivo: pandas.py
 # author by: pt.oldtoolbag.com 
 # Importar pacote dependente pandas e definir apelido
 import pandas as pd
 d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']), 
    'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}
 df = pd.DataFrame(d
 print(df[2:4])

Resultados da Execução:

 
     one two
 c 3.0 3
 d NaN 4

Adicionar linhas

Usar a função append para adicionar novas linhas ao DataFrame. Esta função adicionará linhas no final.

 # Nome do arquivo: pandas.py
 # author by: pt.oldtoolbag.com 
 # Importar pacote dependente pandas e definir apelido
 import pandas as pd
 df = pd.DataFrame([1, 2], [3, 4], columns = ['a','b'])
 df2 = pd.DataFrame([5, 6], [7, 8], columns = ['a','b'])
 df = df.append(df2)
 print(df)

Resultados da Execução:

 
     a b
 0 1 2
 1 3 4
 0 5 6
 1 7 8

Remover linhas

Remover linhas usando rótulos de índice do DataFrame ou removendo linhas. Se os rótulos forem repetidos, várias linhas serão removidas.
Se você notar, no exemplo acima, os rótulos são repetidos. Vamos remover um rótulo para ver quantas linhas serão removidas.

 # Nome do arquivo: pandas.py
 # author by: pt.oldtoolbag.com 
 # Importar pacote dependente pandas e definir apelido
 import pandas as pd
 df = pd.DataFrame([1, 2], [3, 4], columns = ['a','b'])
 df2 = pd.DataFrame([5, 6], [7, 8], columns = ['a','b'])
 df = df.append(df2)
 # Remover linhas com rótulo 0
 df = df.drop(0)
 print(df)

Resultados da Execução:

 
     a b
 1 3 4
 1 7 8

No exemplo acima, foram removidas duas linhas, pois essas duas linhas contêm a mesma etiqueta 0.