Jupyter: Sur mon ordinateur, où se trouve le fichier csv?

Bonjour,

J’utilise Jupyter depuis un mois. Pour m’entraîner avec les bibliothèques pandas, j’ai utilisé le site de Santé France pour obtenir un jeu de données sous forme de fichier csv. J’ai changé le nom du fichier et l’ai appelé: « open_stats_coronavirus.csv ». Chaque fois que je lance le Notebook, pas de problème. Il fonctionne. Mais ce que je ne comprends pas, c’est que je ne trouve ce fichier nulle part sur mon PC.
J’ai trouvé un fichier qui pourrait être celui-ci : covid-hosp-txad-age-fra-2022-02-26-19h09.csv. Cela voudrait dire que lorsque le Jupyter Notebook l’ouvre sous un autre nom, pd.read_csv(« open_stats_coronavirus.csv », sep = ‹ ; ›) , c’est possible ?
Avez-vous une explication ?
Il y a quelque chose que je ne comprends pas.

Le système d’exploitation est Windows10. La version de Jupyter est NoteBook par opposition à Jupyter Lab. La version de Jupyter est 6.5.4.

Depuis, j’ai essayé de retrouver un fichier csv de Santé France plus à jour. Du coup, j’en ai chargé plusieurs et maintenant, pd.read_csv(« open_stats_coronavirus.csv », sep = ‹ ; ›) ne fonctionne plus. Même si je suis dans mouise, ça me parait plus normal.

Ce qui pose un sérieux problème, comment sauvegarder un fichier avec Jupyter?

A+
Michel

Bonjour Michel,

Un fichier Jupyter sera toujours en format .ipynb et se comporte exactement comme n’importe n’importe quel autre fichier sous Windows. Il en est de même pour un fichier .csv. Par défaut, les fichiers Windows téléchargés se retrouvent dans un dossier Téléchargements.
Mais il est possible parfois que celui-ci se soit perdu dans les fichiers temporaires, si vous avez faits vos modifications dessus, il est en effet possible que celles-ci soient perdues…

Pouvez-vous m’envoyer une capture d’écran de votre message d’erreur si cette vérification ne résout pas votre problème ?

Merci,

Très belle journée,

Anthony

import pandas as pd
import numpy as np
#On récupère le fichier CSV
data = pd.read_csv("open_stats_coronavirus.csv", sep = ';')
data.head()

produit:

---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
Input In [1], in <cell line: 4>()
      2 import numpy as np
      3 #On récupère le fichier CSV
----> 4 data = pd.read_csv("open_stats_coronavirus.csv", sep = ';')
      5 data.head()

File ~\anaconda3\envs\my_environ\lib\site-packages\pandas\util\_decorators.py:311, in deprecate_nonkeyword_arguments.<locals>.decorate.<locals>.wrapper(*args, **kwargs)
    305 if len(args) > num_allow_args:
    306     warnings.warn(
    307         msg.format(arguments=arguments),
    308         FutureWarning,
    309         stacklevel=stacklevel,
    310     )
--> 311 return func(*args, **kwargs)

File ~\anaconda3\envs\my_environ\lib\site-packages\pandas\io\parsers\readers.py:680, in read_csv(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, encoding_errors, dialect, error_bad_lines, warn_bad_lines, on_bad_lines, delim_whitespace, low_memory, memory_map, float_precision, storage_options)
    665 kwds_defaults = _refine_defaults_read(
    666     dialect,
    667     delimiter,
   (...)
    676     defaults={"delimiter": ","},
    677 )
    678 kwds.update(kwds_defaults)
--> 680 return _read(filepath_or_buffer, kwds)

File ~\anaconda3\envs\my_environ\lib\site-packages\pandas\io\parsers\readers.py:575, in _read(filepath_or_buffer, kwds)
    572 _validate_names(kwds.get("names", None))
    574 # Create the parser.
--> 575 parser = TextFileReader(filepath_or_buffer, **kwds)
    577 if chunksize or iterator:
    578     return parser

File ~\anaconda3\envs\my_environ\lib\site-packages\pandas\io\parsers\readers.py:933, in TextFileReader.__init__(self, f, engine, **kwds)
    930     self.options["has_index_names"] = kwds["has_index_names"]
    932 self.handles: IOHandles | None = None
--> 933 self._engine = self._make_engine(f, self.engine)

File ~\anaconda3\envs\my_environ\lib\site-packages\pandas\io\parsers\readers.py:1217, in TextFileReader._make_engine(self, f, engine)
   1213     mode = "rb"
   1214 # error: No overload variant of "get_handle" matches argument types
   1215 # "Union[str, PathLike[str], ReadCsvBuffer[bytes], ReadCsvBuffer[str]]"
   1216 # , "str", "bool", "Any", "Any", "Any", "Any", "Any"
-> 1217 self.handles = get_handle(  # type: ignore[call-overload]
   1218     f,
   1219     mode,
   1220     encoding=self.options.get("encoding", None),
   1221     compression=self.options.get("compression", None),
   1222     memory_map=self.options.get("memory_map", False),
   1223     is_text=is_text,
   1224     errors=self.options.get("encoding_errors", "strict"),
   1225     storage_options=self.options.get("storage_options", None),
   1226 )
   1227 assert self.handles is not None
   1228 f = self.handles.handle

File ~\anaconda3\envs\my_environ\lib\site-packages\pandas\io\common.py:789, in get_handle(path_or_buf, mode, encoding, compression, memory_map, is_text, errors, storage_options)
    784 elif isinstance(handle, str):
    785     # Check whether the filename is to be opened in binary mode.
    786     # Binary mode does not support 'encoding' and 'newline'.
    787     if ioargs.encoding and "b" not in ioargs.mode:
    788         # Encoding
--> 789         handle = open(
    790             handle,
    791             ioargs.mode,
    792             encoding=ioargs.encoding,
    793             errors=errors,
    794             newline="",
    795         )
    796     else:
    797         # Binary mode
    798         handle = open(handle, ioargs.mode)

FileNotFoundError: [Errno 2] No such file or directory: 'open_stats_coronavirus.csv'

Merci pour ces précisions, pouvez-vous essayer de mettre un chemin absolu à la place de:

"open_stats_coronavirus.csv" ===> C:/User/chemin/vers/open_stats_coronavirus.csv

Pour voir le chemin, il suffit de faire clique droit sur votre fichier, puis propriété.

Et me faire un retour, merci.

Anthony

Bonjour et merci Anthony pour ton message.

Actuellement, Jupyter Notebook pointe sur mon répertoire: C:\Users\David
Quand je lance Jupyter, une page d’accueil s’ouvre et l’on peut voir tous les fichiers et répertoires
de C:\Users\David, par exemple, expoitation_des_data_sante_France.ipynb
Quand je le lance.
data = pd.read_csv(« open_stats_coronavirus.csv », sep = ‹ ; ›)
Le fichier devrait se trouver au même endroit. Non?

De ce que je vois oui c’est le cas, mais je vous propose d’essayer cette solution pour vérifier que le fichier est bien au bon endroit.
Vous pourrez essayer la chose suivante ensuite :

data = pd.read_csv(« ../open_stats_coronavirus.csv », sep = ‹ ; ›) # Chemin relatif

Faites-moi savoir comment se comporte les deux commandes.

Anthony

import pandas as pd
import numpy as np
#On récupère le fichier CSV
data = pd.read_csv("C:/Users/David/open_stats_coronavirus.csv", sep = ';')
data.head()

donne

---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
Input In [3], in <cell line: 4>()
      2 import numpy as np
      3 #On récupère le fichier CSV
----> 4 data = pd.read_csv("C:/Users/David/open_stats_coronavirus.csv", sep = ';')
      5 data.head()

File ~\anaconda3\envs\my_environ\lib\site-packages\pandas\util\_decorators.py:311, in deprecate_nonkeyword_arguments.<locals>.decorate.<locals>.wrapper(*args, **kwargs)
    305 if len(args) > num_allow_args:
    306     warnings.warn(
    307         msg.format(arguments=arguments),
    308         FutureWarning,
    309         stacklevel=stacklevel,
    310     )
--> 311 return func(*args, **kwargs)

File ~\anaconda3\envs\my_environ\lib\site-packages\pandas\io\parsers\readers.py:680, in read_csv(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, encoding_errors, dialect, error_bad_lines, warn_bad_lines, on_bad_lines, delim_whitespace, low_memory, memory_map, float_precision, storage_options)
    665 kwds_defaults = _refine_defaults_read(
    666     dialect,
    667     delimiter,
   (...)
    676     defaults={"delimiter": ","},
    677 )
    678 kwds.update(kwds_defaults)
--> 680 return _read(filepath_or_buffer, kwds)

File ~\anaconda3\envs\my_environ\lib\site-packages\pandas\io\parsers\readers.py:575, in _read(filepath_or_buffer, kwds)
    572 _validate_names(kwds.get("names", None))
    574 # Create the parser.
--> 575 parser = TextFileReader(filepath_or_buffer, **kwds)
    577 if chunksize or iterator:
    578     return parser

File ~\anaconda3\envs\my_environ\lib\site-packages\pandas\io\parsers\readers.py:933, in TextFileReader.__init__(self, f, engine, **kwds)
    930     self.options["has_index_names"] = kwds["has_index_names"]
    932 self.handles: IOHandles | None = None
--> 933 self._engine = self._make_engine(f, self.engine)

File ~\anaconda3\envs\my_environ\lib\site-packages\pandas\io\parsers\readers.py:1217, in TextFileReader._make_engine(self, f, engine)
   1213     mode = "rb"
   1214 # error: No overload variant of "get_handle" matches argument types
   1215 # "Union[str, PathLike[str], ReadCsvBuffer[bytes], ReadCsvBuffer[str]]"
   1216 # , "str", "bool", "Any", "Any", "Any", "Any", "Any"
-> 1217 self.handles = get_handle(  # type: ignore[call-overload]
   1218     f,
   1219     mode,
   1220     encoding=self.options.get("encoding", None),
   1221     compression=self.options.get("compression", None),
   1222     memory_map=self.options.get("memory_map", False),
   1223     is_text=is_text,
   1224     errors=self.options.get("encoding_errors", "strict"),
   1225     storage_options=self.options.get("storage_options", None),
   1226 )
   1227 assert self.handles is not None
   1228 f = self.handles.handle

File ~\anaconda3\envs\my_environ\lib\site-packages\pandas\io\common.py:789, in get_handle(path_or_buf, mode, encoding, compression, memory_map, is_text, errors, storage_options)
    784 elif isinstance(handle, str):
    785     # Check whether the filename is to be opened in binary mode.
    786     # Binary mode does not support 'encoding' and 'newline'.
    787     if ioargs.encoding and "b" not in ioargs.mode:
    788         # Encoding
--> 789         handle = open(
    790             handle,
    791             ioargs.mode,
    792             encoding=ioargs.encoding,
    793             errors=errors,
    794             newline="",
    795         )
    796     else:
    797         # Binary mode
    798         handle = open(handle, ioargs.mode)

FileNotFoundError: [Errno 2] No such file or directory: 'C:/Users/David/open_stats_coronavirus.csv'
import pandas as pd
import numpy as np
#On récupère le fichier CSV
data = pd.read_csv("" ../open_stats_coronavirus.csv ", sep = ‹ ; ›) # Chemin relatif
data.head()

donne

  Input In [5]
    data = pd.read_csv("" ../open_stats_coronavirus.csv ", sep = ‹ ; ›) # Chemin relatif
                          ^
SyntaxError: invalid syntax



Je corrige ma ligne :

data = pd.read_csv(r"C:\Users\David\open_stats_coronavirus.csv", sep = ';')

Essayez de copier-coller ceci ?

Merci

Votre syntax n’est pas bonne :

 data = pd.read_csv("..\open_stats_coronavirus.csv ", sep = ‹ ; ›) # Chemin relatif
import pandas as pd
import numpy as np
#On récupère le fichier CSV
data = pd.read_csv(r"C:\Users\David\open_stats_coronavirus.csv", sep = ';')
data.head()

donne

---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
Input In [6], in <cell line: 4>()
      2 import numpy as np
      3 #On récupère le fichier CSV
----> 4 data = pd.read_csv(r"C:\Users\David\open_stats_coronavirus.csv", sep = ';')
      5 data.head()

File ~\anaconda3\envs\my_environ\lib\site-packages\pandas\util\_decorators.py:311, in deprecate_nonkeyword_arguments.<locals>.decorate.<locals>.wrapper(*args, **kwargs)
    305 if len(args) > num_allow_args:
    306     warnings.warn(
    307         msg.format(arguments=arguments),
    308         FutureWarning,
    309         stacklevel=stacklevel,
    310     )
--> 311 return func(*args, **kwargs)

File ~\anaconda3\envs\my_environ\lib\site-packages\pandas\io\parsers\readers.py:680, in read_csv(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, encoding_errors, dialect, error_bad_lines, warn_bad_lines, on_bad_lines, delim_whitespace, low_memory, memory_map, float_precision, storage_options)
    665 kwds_defaults = _refine_defaults_read(
    666     dialect,
    667     delimiter,
   (...)
    676     defaults={"delimiter": ","},
    677 )
    678 kwds.update(kwds_defaults)
--> 680 return _read(filepath_or_buffer, kwds)

File ~\anaconda3\envs\my_environ\lib\site-packages\pandas\io\parsers\readers.py:575, in _read(filepath_or_buffer, kwds)
    572 _validate_names(kwds.get("names", None))
    574 # Create the parser.
--> 575 parser = TextFileReader(filepath_or_buffer, **kwds)
    577 if chunksize or iterator:
    578     return parser

File ~\anaconda3\envs\my_environ\lib\site-packages\pandas\io\parsers\readers.py:933, in TextFileReader.__init__(self, f, engine, **kwds)
    930     self.options["has_index_names"] = kwds["has_index_names"]
    932 self.handles: IOHandles | None = None
--> 933 self._engine = self._make_engine(f, self.engine)

File ~\anaconda3\envs\my_environ\lib\site-packages\pandas\io\parsers\readers.py:1217, in TextFileReader._make_engine(self, f, engine)
   1213     mode = "rb"
   1214 # error: No overload variant of "get_handle" matches argument types
   1215 # "Union[str, PathLike[str], ReadCsvBuffer[bytes], ReadCsvBuffer[str]]"
   1216 # , "str", "bool", "Any", "Any", "Any", "Any", "Any"
-> 1217 self.handles = get_handle(  # type: ignore[call-overload]
   1218     f,
   1219     mode,
   1220     encoding=self.options.get("encoding", None),
   1221     compression=self.options.get("compression", None),
   1222     memory_map=self.options.get("memory_map", False),
   1223     is_text=is_text,
   1224     errors=self.options.get("encoding_errors", "strict"),
   1225     storage_options=self.options.get("storage_options", None),
   1226 )
   1227 assert self.handles is not None
   1228 f = self.handles.handle

File ~\anaconda3\envs\my_environ\lib\site-packages\pandas\io\common.py:789, in get_handle(path_or_buf, mode, encoding, compression, memory_map, is_text, errors, storage_options)
    784 elif isinstance(handle, str):
    785     # Check whether the filename is to be opened in binary mode.
    786     # Binary mode does not support 'encoding' and 'newline'.
    787     if ioargs.encoding and "b" not in ioargs.mode:
    788         # Encoding
--> 789         handle = open(
    790             handle,
    791             ioargs.mode,
    792             encoding=ioargs.encoding,
    793             errors=errors,
    794             newline="",
    795         )
    796     else:
    797         # Binary mode
    798         handle = open(handle, ioargs.mode)

FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\David\\open_stats_coronavirus.csv'
import pandas as pd
import numpy as np
#On récupère le fichier CSV
data = pd.read_csv(« ../open_stats_coronavirus.csv », sep = ‹ ; ›) # Chemin relatif
data.head()

donne

  Input In [7]
    data = pd.read_csv(« ../open_stats_coronavirus.csv », sep = ‹ ; ›) # Chemin relatif
                       ^
SyntaxError: invalid character '«' (U+00AB)



Il faut des guillemets : "" pas «  »

Désolé

import pandas as pd
import numpy as np
#On récupère le fichier CSV
data = pd.read_csv(" ../open_stats_coronavirus.csv ", sep = ';') # Chemin relatif
data.head()

donne

---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
Input In [10], in <cell line: 4>()
      2 import numpy as np
      3 #On récupère le fichier CSV
----> 4 data = pd.read_csv(" ../open_stats_coronavirus.csv ", sep = ';') # Chemin relatif
      5 data.head()

File ~\anaconda3\envs\my_environ\lib\site-packages\pandas\util\_decorators.py:311, in deprecate_nonkeyword_arguments.<locals>.decorate.<locals>.wrapper(*args, **kwargs)
    305 if len(args) > num_allow_args:
    306     warnings.warn(
    307         msg.format(arguments=arguments),
    308         FutureWarning,
    309         stacklevel=stacklevel,
    310     )
--> 311 return func(*args, **kwargs)

File ~\anaconda3\envs\my_environ\lib\site-packages\pandas\io\parsers\readers.py:680, in read_csv(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, encoding_errors, dialect, error_bad_lines, warn_bad_lines, on_bad_lines, delim_whitespace, low_memory, memory_map, float_precision, storage_options)
    665 kwds_defaults = _refine_defaults_read(
    666     dialect,
    667     delimiter,
   (...)
    676     defaults={"delimiter": ","},
    677 )
    678 kwds.update(kwds_defaults)
--> 680 return _read(filepath_or_buffer, kwds)

File ~\anaconda3\envs\my_environ\lib\site-packages\pandas\io\parsers\readers.py:575, in _read(filepath_or_buffer, kwds)
    572 _validate_names(kwds.get("names", None))
    574 # Create the parser.
--> 575 parser = TextFileReader(filepath_or_buffer, **kwds)
    577 if chunksize or iterator:
    578     return parser

File ~\anaconda3\envs\my_environ\lib\site-packages\pandas\io\parsers\readers.py:933, in TextFileReader.__init__(self, f, engine, **kwds)
    930     self.options["has_index_names"] = kwds["has_index_names"]
    932 self.handles: IOHandles | None = None
--> 933 self._engine = self._make_engine(f, self.engine)

File ~\anaconda3\envs\my_environ\lib\site-packages\pandas\io\parsers\readers.py:1217, in TextFileReader._make_engine(self, f, engine)
   1213     mode = "rb"
   1214 # error: No overload variant of "get_handle" matches argument types
   1215 # "Union[str, PathLike[str], ReadCsvBuffer[bytes], ReadCsvBuffer[str]]"
   1216 # , "str", "bool", "Any", "Any", "Any", "Any", "Any"
-> 1217 self.handles = get_handle(  # type: ignore[call-overload]
   1218     f,
   1219     mode,
   1220     encoding=self.options.get("encoding", None),
   1221     compression=self.options.get("compression", None),
   1222     memory_map=self.options.get("memory_map", False),
   1223     is_text=is_text,
   1224     errors=self.options.get("encoding_errors", "strict"),
   1225     storage_options=self.options.get("storage_options", None),
   1226 )
   1227 assert self.handles is not None
   1228 f = self.handles.handle

File ~\anaconda3\envs\my_environ\lib\site-packages\pandas\io\common.py:789, in get_handle(path_or_buf, mode, encoding, compression, memory_map, is_text, errors, storage_options)
    784 elif isinstance(handle, str):
    785     # Check whether the filename is to be opened in binary mode.
    786     # Binary mode does not support 'encoding' and 'newline'.
    787     if ioargs.encoding and "b" not in ioargs.mode:
    788         # Encoding
--> 789         handle = open(
    790             handle,
    791             ioargs.mode,
    792             encoding=ioargs.encoding,
    793             errors=errors,
    794             newline="",
    795         )
    796     else:
    797         # Binary mode
    798         handle = open(handle, ioargs.mode)

FileNotFoundError: [Errno 2] No such file or directory: ' ../open_stats_coronavirus.csv '

Décidément… pouvez-vous m’envoyer une capture d’écran du dossier Windows où sont censés se retrouver le CSV ainsi que le notebook svp ?

Comme ceci par exemple:

Merci

Incroyable mais vraie…Je viens de chercher le fichier open_stats_coronavirus.csv
sur internet…et je l’ai trouvé. Moi qui croyais avoir modifié son nom…!!!
En fait, il n’est pas sur le site Santé Public France mais sur
NOUVEAU ! DES DONNÉES DISPONIBLES EN OPEN-DATA (BÊTA)

Du coup…

import pandas as pd
import numpy as np
#On récupère le fichier CSV
data = pd.read_csv("open_stats_coronavirus.csv", sep = ';') # Chemin relatif
data.head()

donne

 	date 	code 	nom 	cas 	deces 	guerisons 	source
0 	2020-02-21 	P1 	france 	12.0 	1.0 	NaN 	Santé Publique France
1 	2020-02-22 	P1 	france 	12.0 	1.0 	NaN 	Santé Publique France
2 	2020-02-23 	P1 	france 	12.0 	1.0 	NaN 	Santé Publique France
3 	2020-02-24 	P1 	france 	12.0 	1.0 	NaN 	Santé Publique France
4 	2020-02-25 	P1 	france 	14.0 	1.0 	NaN 	Santé Publique France

image
image

Merci Anthony Sans toi, je n’aurai pas insisté…Je considérais que c’était foutu…
Je vais sauvegarder un doublon de ce fichier sur un autre disque.
Je vais aussi voir si je ne peux pas le charger directement sur le site.
Cordialement,
Michel

1 Like