J'ai eu plusieurs opportunités d'utiliser des pandas pour des tâches de développement en interne. Je me demande comment le faire car ce n'est pas si fréquent Il y a beaucoup de choses comme comment le faire en premier lieu. De plus, comme il existe de nombreuses possibilités de gérer plusieurs Go de données en raison de sa nature, Je mettrai à jour la méthode pour gérer de tels cas de temps en temps. Par conséquent, la composition est décrite sous la forme de ce que vous voulez faire ⇒ comment le faire.
Au fait, ce n'est pas comme faire du machine learning gorigori, alors Veuillez noter qu'il n'est pas question de cela.
En premier lieu, rien ne peut être fait à moins que csv ne puisse être lu. Donc, comment lire. Les bases sont les suivantes.
df = pd.read_csv("nom de fichier")
Cependant, lorsque la taille du fichier devient Go, Il y a de fortes chances que vous ne puissiez pas survivre à la mémoire. Dans un tel cas, ajoutez l'option chunksize et chargez-la séparément.
Si vous spécifiez chunksize, Il est chargé comme une instance de TextFileReader au lieu d'un Dataframe. Si vous tournez le TextFileReader dans une boucle, vous pouvez récupérer le DataFrame. Dans l'exemple suivant, 50 lignes sont extraites et imprimées.
data = pd.read_csv("test.csv", chunksize=50)
for i in data:
print(i)
Nom de l'option | sens | Exemple |
---|---|---|
encoding | Spécification du code de caractère | encoding='UTF-8' |
skiprows | Spécifiez la ligne à ignorer | skiprows=2 |
chunksize | Lire chaque nombre de lignes spécifié | chunksize=50 |
usecols | Lecture seule des colonnes spécifiées | usecols=[1, 3] |
[Autres options](https://own-search-and-study.xyz/2015/09/03/pandas%E3%81%AEread_csv%E3%81%AE%E5%85%A8%E5%BC%95 % E6% 95% B0% E3% 82% 92% E4% BD% BF% E3% 81% 84% E3% 81% 93% E3% 81% AA% E3% 81% 99 /)
Comment lire et concaténer des fichiers séparés
#Fichier 1 lu
Data1 = pd.read_csv(file1, dtype = np.float32)
#Lire le fichier 2
Data2 = pd.read_csv(file2, dtype = np.float32)
#Concaténer 2 données
rawData = pd.concat([Data1, Data2], ignore_index=True)
df['A']
df[1:3]
Notez que la ligne commence à 0, donc dans ce cas, la première ligne ne peut pas être obtenue. De plus, 3 signifie jusqu'à 2.
La trame de données d'origine est modifiée en spécifiant inplace = True. Dans l'exemple suivant, les colonnes Ville et Prix disparaissent de Données.
df.drop(columns=['City', 'Price'], axis = 1, inplace=True)
Peut être spécifié par numéro de colonne
df.drop(columns=[[1, 2]], axis = 1, inplace=True)
df.drop(df.index[[1, 3, 5]])
Par défaut, l'index de ligne est un numéro de série de 0, Notez que l'index ne sera pas un numéro de série après le tri, etc.
df.replace({Nom de colonne: {Valeur d'origine:Valeur après remplacement}})
Utilisé lors de la modification du traitement en fonction de la valeur de la colonne. Puisqu'il renvoie un objet GroupBy, vous pouvez jouer avec l'instruction for telle quelle.
pour la valeur de la colonne,Trame de données en df.groupby('Nom de colonne'):
Chaque processus
De plus, comme l'indice est dispersé, Utilisez reset_index () pour recoller l'index dans chaque bloc de données.
for city,sdf in df.groupby('city'):
sdf.reset_index(drop=True)
if city = 'Tokyo':
flags = 1
Renvoie le nombre d'éléments dans le premier tableau de colonnes. Sans [0], chaque matrice est comptée.
pd.shape[0]
means = df.mean(axis = 0)
std = df.std(axis = 0)
Pour enregistrer au format csv après le traitement de la trame de données:
df.to_csv("nom de fichier")
Nom de l'option | sens | Exemple |
---|---|---|
columns | Exporter uniquement des colonnes spécifiques | columns=['age'] |
header | Avec ou sans tête | header=False |
index | Présence ou absence d'index | index=False |
Exporter / ajouter un fichier csv avec pandas (to_csv)
Différences entre Pandas et NumPy et comment les utiliser correctement Grouper DataFrame par valeur de colonne --pandas Déposer en spécifiant la ligne / colonne de pandas.DataFrame Lire les fichiers csv / tsv avec pandas (read_csv, read_table) Réaffecter l'index DataFrame avec reset_index-python
Recommended Posts