English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
Potential columns are of different types Variable size Labeled axis (rows and columns) Arithmetic operations can be performed on rows and columns
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.
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.
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.
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: []
# 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
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
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
字典列表可以作为输入数据传递以创建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
下面的示例演示如何通过传递字典列表和行索引来创建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
可以传递系列字典以形成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
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
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.
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.
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
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
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 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.