Bonjour,
Perpétuel débutant, j'utilise pandas et matplotlib et en l'occurrence, nous sommes sur windows (confère https://stackoverflow.com/questions/50620954/process-finished-with-exit-code-1073741819-0xc0000005-pycharm).
Dans ce cadre, je passe un dataframe à une classe de cette manière :
fichier appelant :
objet=maclasse(self.dataframe)
objet.travail()
Fichier de classe :
import pandas as pd
import numpy as np
class maclasse:
def __init__(self,dataframe):
self.dataframe = dataframe
def travail(self):
toto = self.dataframe
Rien qu'une affectation comme ci-dessus permet renvoyer le message en sujet de ce message.
J'ai tenté quelques petits trucs de-ci de-là, comme définir PYDEVD_USE_FRAME_EVAL=NO et PYDEVD_USE_CYTHON=NO dans "run/debug configuration", mettre à jour pycharm, les modules pandas, numpy, matplotlib, mais rien n'y fait.
Accessoirement, j'ai tenté de suivre ce tuto :
https://medium.com/france-school-of-ai/travailler-facilement-avec-les-dates-sur-pandas-14b14b2ea51
et j'en arrive au plantage suivant :
" raise type(err)(msg) from err
TypeError: agg function failed [how->mean,dtype->object]"
à partir du code qui suit lui aussi :
import pandas as pd
def todecade(y):
return str(y)[2] + '0'
df = pd.read_csv('https://raw.githubusercontent.com/jakevdp/data-CDCbirths/master/births.csv')
df = df[ (df["day"] <= 31) & (df["day"].isnull() == False) ]
df['date']= pd.to_datetime(df[['year','month','day']], errors='coerce')
df.dropna(inplace=True)
df["weekday"]=df["date"].dt.day_name()
df["decade"]=df['year'].apply(todecade)
summary = pd.DataFrame(df.groupby(['decade',"weekday"]).mean().astype('int')["births"])
print(df.isnull().sum())
print(df.isna().sum())
print(df.head(15))
Sachant que ce dernier code s'exécute sans broncher dans une debian en wsl mais plante aussi dans Idle, y-a-t-il des gros bugs dans la librairie Pandas (ou ailleurs) sous windows ou il y a des choses que je fais de travers (je serai tenté naturellement de pencher vers cette hypothèse, mais, sait-on jamais)?
# Ca ne doit pas venir de windows uniquement.
Posté par Pierre . Évalué à 3.
Bonjour,
Je viens tester sans soucis le 2eme code en exemple sur Windows avec un environnement virtuel Python 3.10 dans un Notebook et dans Spyder.
Pour le 1er code, la classe ne fait rien de spécial, par contre l'appel
objet=maclasse(self.dataframe)
me semble étrange a moins qu'il soit fait depuis une autre classe d'objet sinon ce devrait simplement êtreobjet=maclasse(dataframe)
.J'ai beaucoup utilisé pandas pendant quelques mois, au début j'avais parfois des problèmes liés aux droits utilisateurs. En passant sur un environnement virtuel je n'ai plus eu de soucis.
[^] # Re: Ca ne doit pas venir de windows uniquement.
Posté par twon . Évalué à 1.
C'est bien le cas … :-)
Merci pour le retour, l'idée de l'environnement virtuel pourra peut-être être une porte de sortie.
# chez nous ça semble marcher
Posté par tisaac (Mastodon) . Évalué à 4.
A priori, j'ai un collègue qui utilise régulièrement Pandas sous Windows. Je ne l'ai jamais entendu mentionner de gros problèmes liés à Pandas.
Surtout, ne pas tout prendre au sérieux !
# Rebelotte ...
Posté par twon . Évalué à 1.
Bon, ce mauvais comportement m'avait laissé tranquille un petit temps, comme j'avais fait de gros nettoyages, je pensais que c'était simplement mon code qui était en cause initialement.
Je suis désormais dans une situation où il me suffit d'ajouter un print d'une chaîne de caractères toute simple un peu avant là où le code plante pour reprendre une exécution normale.
Si je fais un rapport de bug, dois-je rapporter à l'éditeur de l'ide ou à l'éditeur de l'interpréteur python ?
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.