ne pas faire en cours, lire en autonomie
import pandas as pd
import numpy as np
de très nombreuses voies sont possibles pour créer une dataframe par programme
en voici quelques-unes à titre d’illustration
voyez la documentation de pd.DataFrame?
pour les détails
à partir du dict Python des colonnes¶
# le code
import pandas as pd
import numpy as np
cols_dict = {'names' : ['snail', 'pig', 'elephant', 'rabbit',
'giraffe', 'coyote', 'horse'],
'speed' : [0.1, 17.5, 40, 48, 52, 69, 88],
'lifespan' : [2, 8, 70, 1.5, 25, 12, 28], }
df = pd.DataFrame(cols_dict)
df
Loading...
à partir du dict
des colonnes et d’une list
(d’index) des lignes¶
cols_dict = {'speed' : [0.1, 17.5, 40, 48, 52, 69, 88],
'lifespan' : [2, 8, 70, 1.5, 25, 12, 28], }
line_ids = ['snail', 'pig', 'elephant', 'rabbit',
'giraffe', 'coyote', 'horse']
df = pd.DataFrame(cols_dict, index = line_ids)
df.values
array([[ 0.1, 2. ],
[17.5, 8. ],
[40. , 70. ],
[48. , 1.5],
[52. , 25. ],
[69. , 12. ],
[88. , 28. ]])
à partir d’un numpy.ndarray
¶
# le code
nd = np.array([[ 0.1, 2. ],
[17.5, 8. ],
[40. , 70. ],
[48. , 1.5],
[52. , 25. ],
[69. , 12. ],
[88. , 28. ]])
df = pd.DataFrame(nd)
df
Loading...
# le code
nd = np.array([[ 0.1, 2. ],
[17.5, 8. ],
[40. , 70. ],
[48. , 1.5],
[52. , 25. ],
[69. , 12. ],
[88. , 28. ]])
df = pd.DataFrame(nd,
index=['snail', 'pig', 'elephant',
'rabbit', 'giraffe', 'coyote', 'horse'],
columns = ['speed', 'lifespan'])
df['Names'] = df.index
df.values
array([[0.1, 2.0, 'snail'],
[17.5, 8.0, 'pig'],
[40.0, 70.0, 'elephant'],
[48.0, 1.5, 'rabbit'],
[52.0, 25.0, 'giraffe'],
[69.0, 12.0, 'coyote'],
[88.0, 28.0, 'horse']], dtype=object)
exercice : création de df et type des éléments¶
- créer un
numpy.ndarray
à partir de la liste suivante
animals = [['snail', 0.1, 2.0],
['pig', 17.5, 8.0],
['elephant', 40.0, 70.0],
['rabbit', 48.0, 1.5],
['giraffe', 52.0, 25.0],
['coyote', 69.0, 12.0],
['horse', 88.0, 28.0]]
# votre code
- Affichez le type des éléments de la table
Que constatez-vous ? (U = Unicode) Que se passe-t-il si on essaie d’affecter dans la case (2, 0) la chaine"grey elephant more than 32 charaters long"
Remettez-y le mot"elephant"
# votre code
- créez une
pandas.DataFrame
à partir du tableau numpy
et avec pour noms de colonnes'names'
,'speed'
et'lifespan'
le passage par numpy est-il une bonne idée ?
dans cet exercice on vous impose de passer par le tableau numpy, ce qui en l’espèce n’est pas forcément la meilleure idée
mais ça peut être intéressant de voir ce que ça donne ... :)
# votre code
- affichez la valeur et le type du
'lifespan'
de l’éléphant
Que constatez-vous ?
(object
signifie icistr
)
# votre code
- affichez la valeur et le type du
'names'
de l’éléphant
Que constatez-vous ?
# votre code
- avec
loc
ouiloc
, modifiez la valeurelephant
par'grey elephant more than 32 charaters long'
affichez la valeur et le type du'names'
de l’éléphant
un constat ?
# votre code
- affichez le type des colonnes
utilisez l’attributdtypes
despandas.DataFrame
# votre code
- avec la méthode
pandas.DataFrame.to_numpy
affichez le tableaunumpy
sous-jacent de votre data-frame
affichez le type du tableau
que constatez-vous ?
# votre code
- modifiez les colonnes
'speed'
et'lifespan'
de manière à leur donner le typefloat
(utilisezpandas.Series.astype
voir les rappels en fin d’exercice)
# votre code
- pour comparer, construisez directement une dataframe à partir de l’objet liste
a-t-on besoin dans ce cas de convertir les types des colonnes ?
# your code