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 rows and columns in tabular form.
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 creating a DataFrame with student data.
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: Data is taken 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: pour les étiquettes de colonnes, la syntaxe par défaut est optionnelle]}-np.arange(n). Ce n'est le cas que si aucun index n'est fourni. dtype: type de données de chaque colonne. copy: Si la valeur par défaut est False, cette commande (ou toute autre commande de cette commande) est utilisée pour copier les données.
Il est possible de créer un DataFrame pandas à partir de diverses entrées.-
Lists dictionnaire Séries Numpy ndarrays Un autre DataFrame
Dans la partie suivante de ce chapitre, nous verrons comment utiliser ces entrées pour créer des DataFrame.
Il est possible de créer un DataFrame de base à partir d'un DataFrame vide.
# Fichier : pandas.py # Auteur par : fr.oldtoolbag.com # Importer le paquet de dépendance pandas et l'aliaser import pandas as pd df = pd.DataFrame() print(df)
Résultat de l'exécution :
DataFrame vide Columns: [] Index: []
# Fichier : pandas.py # Auteur par : fr.oldtoolbag.com # Importer le paquet de dépendance pandas et l'aliaser import pandas as pd data = [1,2,3,4,5]} df = pd.DataFrame(data) print(df)
Résultat de l'exécution :
0 0 1 1 2 2 3 3 4 4 5
# Fichier : pandas.py # Auteur par : fr.oldtoolbag.com # Importer le paquet de dépendance pandas et l'aliaser import pandas as pd data = [['Alex',10],['Bob',12],['Clarke',13]} df = pd.DataFrame(data,columns=['Nom','Âge']) print(df)
Résultat de l'exécution :
Nom Âge 0 Alex 10 1 Bob 12 2 Clarke 13
# Fichier : pandas.py # Auteur par : fr.oldtoolbag.com # Importer le paquet de dépendance pandas et l'aliaser import pandas as pd data = [['Alex',10],['Bob',12],['Clarke',13]} df = pd.DataFrame(data,columns=['Nom','Âge'],dtype=float) print df
Résultat de l'exécution :
Nom Âge 0 Alex 10.0 1 Bob 12.0 2 Clarke 13.0
La longueur de tous les ndarray doit être la même. Si l'index est fourni, la longueur de l'index doit être égale à la longueur du tableau.
Si aucun index n'est fourni, l'index par défaut sera range(n), où n est la longueur du tableau.
# Fichier : pandas.py # Auteur par : fr.oldtoolbag.com # Importer le paquet de dépendance pandas et l'aliaser import pandas as pd data = {'Nom':['Tom', 'Jack', 'Steve', 'Ricky'],'Âge':[,28,34,29,42]} df = pd.DataFrame(data) print(df)
Résultat de l'exécution :
Âge Nom 0 28 Tom 1 34 Jack 2 29 Steve 3 42 Ricky
# Fichier : pandas.py # Auteur par : fr.oldtoolbag.com # Importer le paquet de dépendance pandas et l'aliaser import pandas as pd data = {'Nom':['Tom', 'Jack', 'Steve', 'Ricky'],'Âge':[,28,34,29,42]} df = pd.DataFrame(data, index=['rang1','rang2','rang3','rang4']) print(df)
Résultat de l'exécution :
Âge Nom rank1 28 Tom rank2 34 Jack rank3 29 Steve rank4 42 Ricky
字典列表可以作为输入数据传递以创建DataFrame。默认情况下,字典键被用作列名。
下面的示例演示如何通过传递字典列表来创建DataFrame。
# Fichier : pandas.py # Auteur par : fr.oldtoolbag.com # Importer le paquet de dépendance pandas et l'aliaser import pandas as pd data = [{'a': 1, 'b': 2},{'a': 5, 'b': 10, 'c': 20}] df = pd.DataFrame(data) print(df)
Résultat de l'exécution :
a b c 0 1 2 NaN 1 5 10 20.0
下面的示例演示如何通过传递字典列表和行索引来创建DataFrame。
# Fichier : pandas.py # Auteur par : fr.oldtoolbag.com # Importer le paquet de dépendance pandas et l'aliaser import pandas as pd data = [{'a': 1, 'b': 2},{'a': 5, 'b': 10, 'c': 20}] df = pd.DataFrame(data, index=['first', 'second']) print(df)
Résultat de l'exécution :
a b c first 1 2 NaN second 5 10 20.0
下面的示例演示如何创建包含字典,行索引和列索引的列表的DataFrame。
# Fichier : pandas.py # Auteur par : fr.oldtoolbag.com # Importer le paquet de dépendance pandas et l'aliaser 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'])1']) print(df1) print(df2)
Résultat de l'exécution :
#df1 output a b first 1 2 second 5 10 #df2 output a b1 first 1 NaN second 5 NaN
可以传递系列字典以形成DataFrame。结果索引是所有通过的系列索引的并集。
# Fichier : pandas.py # Auteur par : fr.oldtoolbag.com # Importer le paquet de dépendance pandas et l'aliaser 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)
Résultat de l'exécution :
one two a 1.0 1 b 2.0 2 c 3.0 3 d NaN 4
对于第一个系列,没有传递标签'd',但是结果是,对于d标签,附加了NaN。
现在让我们通过示例了解列的选择,添加和删除。
我们将从DataFrame中选择一列来了解这一点。
# Fichier : pandas.py # Auteur par : fr.oldtoolbag.com # Importer le paquet de dépendance pandas et l'aliaser 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'])
Résultat de l'exécution :
a 1.0 b 2.0 c 3.0 d NaN Name: one, dtype: float64
我们将通过在现有数据框中添加新列来了解这一点。
# Fichier : pandas.py # Auteur par : fr.oldtoolbag.com # Importer le paquet de dépendance pandas et l'aliaser 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 ("使用 DataFrame 中的现有列添加新列:") df['four']=df['one']+df['three'] print(df)
Résultat de l'exécution :
通过作为 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 使用 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
可以删除或弹出列;让我们以一个实例来了解如何。
# Fichier : pandas.py # Auteur par : fr.oldtoolbag.com # Importer le paquet de dépendance pandas et l'aliaser 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)
Résultat de l'exécution :
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
现在,我们将通过示例了解行的选择,添加和删除。让我们从选择的概念开始。
可以通过将行标签传递给loc函数来选择行。
# Fichier : pandas.py # Auteur par : fr.oldtoolbag.com # Importer le paquet de dépendance pandas et l'aliaser 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'])
Résultat de l'exécution :
one 2.0 two 2.0 Name: b, dtype: float64
结果是一系列带有标签作为DataFrame列名称的系列。并且,系列的名称是用来检索它的标签。
结可以通过将整数位置传递给iloc函数来选择行。
# Fichier : pandas.py # Auteur par : fr.oldtoolbag.com # Importer le paquet de dépendance pandas et l'aliaser 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])
Résultat de l'exécution :
one 3.0 two 3.0 Name: c, dtype: float64
可以使用 ':' 运算符选择多行。
# Fichier : pandas.py # Auteur par : fr.oldtoolbag.com # Importer le paquet de dépendance pandas et l'aliaser 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])
Résultat de l'exécution :
one two c 3.0 3 d NaN 4
Ajouter de nouvelles lignes au DataFrame en utilisant la fonction append. Cette fonction ajoute des lignes à la fin.
# Fichier : pandas.py # Auteur par : fr.oldtoolbag.com # Importer le paquet de dépendance pandas et l'aliaser 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)
Résultat de l'exécution :
a b 0 1 2 1 3 4 0 5 6 1 7 8
Supprimer les lignes à partir du DataFrame en utilisant les étiquettes d'index. Si les étiquettes sont répétées, plusieurs lignes seront supprimées.
Si vous observez que, dans l'exemple ci-dessus, les étiquettes sont répétées. Supprimons une étiquette, et voyons combien de lignes seront supprimées.
# Fichier : pandas.py # Auteur par : fr.oldtoolbag.com # Importer le paquet de dépendance pandas et l'aliaser 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) # Supprimer les lignes avec l'étiquette 0 df = df.drop(0) print(df)
Résultat de l'exécution :
a b 1 3 4 1 7 8
Dans l'exemple ci-dessus, deux lignes ont été supprimées car elles contiennent le même étiquette 0.