Je fais généralement du prétraitement des données. La plupart des données fonctionnent bien si vous pouvez les lire avec des pandas, mais vous pouvez rencontrer des données illisibles, alors gardez une trace de votre combat avec eux.
--Le délimiteur est une virgule "," et chaque donnée est placée entre guillemets "" ". --Un code de saut de ligne est inclus dans les données (entre "et").
↓ Si vous le comparez comme ça
"a","b"
"1","Ho\n""
"2","Fu,Ou'"
--Créez un fichier csv qui peut être lu par read.csv () de pandas, qui est une bibliothèque Python. ――Comme il s'agit de la première partie du prétraitement, je souhaite en faire un DataFrame pour le traitement ultérieur.
↓ En d'autres termes, je souhaite créer ce type de DataFrame.
a | b |
---|---|
1 | Hoke" |
2 | Fu,'Ou' |
import pandas as pd
df = pd.read_csv('hoge.csv')
print(df)
a | b | |
---|---|---|
1 | Ho\n"\n2" | Fu,Ou' |
import re
import pandas as pd
#Lire sous forme de texte
with open('hoge.csv', 'r') as f:
text = f.read()
tmp_text = re.sub('([^"])\n([^"])', r'\1\2', text) #Code de saut de ligne au milieu des données(\n)Se débarrasser de
tmp_text = re.sub('","', '\t', tmp_text) #Convertir les délimiteurs en onglets
tmp_text = re.sub('(^"|"$)', '', tmp_text) #Supprimez les premier et dernier guillemets du fichier
tmp_text = re.sub('"\n"', '\n', tmp_text) #Supprimer la citation au milieu
#Cracher une fois dans un fichier
with open('data.csv', 'w') as f:
f.write(tmp_text)
#Confirmer
df = pd.read_csv('data.csv', sep='\t')
print(df)
production
a b
0 1"
1 2,Ou'
Je lis.
Le contenu du fichier ressemble à ceci
data.csv
a b
1"
2 Fu,Ou'
Si les données contenaient \ t, ce code ne fonctionnerait bien sûr pas. La même chose s'applique lorsque le code de saut de ligne est différent. Vous devez vérifier quels caractères sont inclus et comment les remplacer. → Créer une méthode de contrôle et paramétrer les délimiteurs?
Je le ferai quand j'en aurai envie. Si vous le traitez sur jupyter, vous pouvez facilement vérifier les données et changer la source, donc cela peut ne pas être nécessaire ...?
Si vous le lisez avec des pandas, il est déjà là. Il devrait être utilisable non seulement pour les pandas, mais également avant d'être mangé par les outils de BI.
** Les expressions régulières sont pratiques! !! ** **
Recommended Posts