J'ai un fichier UTF-8 avec des données Twitter et j'essaie de le lire dans un cadre de données Python, mais je ne peux obtenir qu'un type 'objet' au lieu de chaînes unicode:
# file 1459966468_324.csv
#1459966468_324.csv: UTF-8 Unicode English text
df = pd.read_csv('1459966468_324.csv', dtype={'text': unicode})
df.dtypes
text object
Airline object
name object
retweet_count float64
sentiment object
Tweet_location object
dtype: object
Quelle est la bonne façon de lire et de contraindre les données UTF-8 en unicode avec Pandas?
Cela ne résout pas le problème:
df = pd.read_csv('1459966468_324.csv', encoding = 'utf8')
df.apply(lambda x: pd.lib.infer_dtype(x.values))
Le fichier texte est ici: https://raw.githubusercontent.com/l1x/nlp/master/1459966468_324.csv
Comme l'a mentionné l'autre affiche, vous pourriez essayer:
df = pd.read_csv('1459966468_324.csv', encoding = 'utf8')
Cependant, cela pourrait vous laisser regarder "objet" lorsque vous imprimez les types de données. Pour confirmer qu’ils sont bien utf8, essayez cette ligne après avoir lu le fichier CSV:
df.apply(lambda x: pd.lib.infer_dtype(x.values))
Exemple de sortie:
args unicode
date datetime64
Host unicode
kwargs unicode
operation unicode
Utilisez le mot clé encoding
avec le paramètre approprié:
df = pd.read_csv('1459966468_324.csv', encoding='utf8')
Les pandas stockent les chaînes dans object
s. En Python 3, toutes les chaînes sont en Unicode par défaut. Donc, si vous utilisez Python 3, vos données sont déjà en Unicode (ne vous trompez pas de type object
).
Si vous avez Python 2, utilisez df = pd.read_csv('your_file', encoding = 'utf8')
. Ensuite, essayez par exemple pd.lib.infer_dtype(df.iloc[0,0])
(je suppose que le premier col est constitué de chaînes.)