Forum Programmation.python Process finished with exit code -1073741819 (0xC0000005)

Posté par  . Licence CC By‑SA.
Étiquettes :
0
19
fév.
2024

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  . É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 être objet=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  . Évalué à 1.

      "par contre l'appel objet=maclasse(self.dataframe) me semble étrange a moins qu'il soit fait depuis une autre classe d'objet"

      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  (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  . É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.