CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[python/pandas/dataframe] deep copy?

godrik
godrik
Niveau 30
11 août 2022 à 19:39:00

Salut a vous,

J'ai une panda dataframe qui est relativement grosse. Et dans le cadre d'une analyse, j'ai besoin que d'une partie de la data frame. Donc j'ai un truc du genre.

local_df = df["a = 12"]

Et cette local_df est monstrueusement plus petite que df (c'est en gros 1% de df). Et je vais faire une tonne de requetes differentes sur local_df pour faire les calcul que j'ai besoin de faire.

J'ai l'impression que pandas.dataframe ne materialize pas en memoire local_df. local_df a l'air d'etre juste une reference a df avec l'information qu'il ne faut garder que les "a=12". Donc quand je fais l'analyse qui suit, je me retrouve a quand meme iterer sur df entier. Donc je passe 99% du temps de l'application a iterer sur des lignes de la dataframe dont j'ai pas besoin.

Je n'ai pas trouve dans la documentation de panda.dataframe comment faire ca (Parceque les doc python sont naze en general; en particulier il y a un .copy() qui ne fait pas ce que je veux). J'ai pas trouve sur le web non plus.

Quelqu'un sait comment faire ca ?

En passant, j'ai plein de colone que je peux ignore aussi.

Tchuss!

Elalilalolulu
Elalilalolulu
Niveau 4
12 août 2022 à 15:14:22

Je connais pas cette librairie en particulier, mais un solution un peu sale c'est de sérialiser puis de désérialiser les données que tu veux récupérer. Ainsi t'es certain que le résultat n'est pas une obscure référence à ta dataframe de départ.

godrik
godrik
Niveau 30
12 août 2022 à 15:43:35

@elalilalolulu,
ouais, c'est la seule solution que j'ai trouve. Mais c'est relativement moche. En particulier une des colonnes de la dataframe est une reference a un variable python-MIP qui ne serialize pas bien vers un fichier.
Je pense qu'on va pouvoir generer un dict a partir de la dataframe et reimporter le dict. Mais c'est clairement un overhead que j'aurais prefere ne pas payer...

Peut etre que quelqu'un d'autre sauras faire ca...

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment