J'importe des données à partir d'un fichier csv, je veux diviser la colonne 'topThemes' en un tableau / dataframe avec deux colonnes.
Dans la première colonne, je veux avoir le nom du thème (par exemple Biologie), dans la deuxième colonne je veux sa partition associée (par exemple 62).
Lorsque j'importe la colonne, elle est stockée dans ce format:
Biology: 62\n
Economics: 12\n
Physics: 4\n
Chemistry: 8\n
and so on.
Mon code actuel et l'erreur sont indiqués ci-dessous.
Code:
df = pd.read_csv(r'myfilelocation')
split = [line.split(': ') for line in df['topThemes'].split('\n')]
Erreur:
AttributeError("'Series' object has no attribute 'split'")
Fichier CSV en cours d'importation:
Comment je veux que ça ressemble:
Merci pour toute aide / réponse.
Spécifiez le délimiteur à utiliser avec sep
et les noms de colonnes avec names
de la read_csv()
fonction:
df = pd.read_csv(r'myfilelocation', sep=':', names=['topThemes', 'score'])
Documentation ici: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html
Oh, je vois votre fichier CSV source maintenant ...
Il existe probablement un moyen plus propre de le faire en moins d'étapes, mais je pense que cela produit la sortie demandée:
data = pd.read_csv(r'myfilelocation', usecols=['topThemes'])
data = pd.DataFrame(data['topThemes'].str.split('\n').values.tolist()).stack().to_frame(name='raw')
df = pd.DataFrame()
df[['topTheme', 'score']] = data['raw'].apply(lambda x: pd.Series(str(x).split(":")))
df.dropna(inplace=True)
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots