Bonjour,
J'ai un petit souci avec la création d'une dataframe à travers une boucle...
J'ai le script suivant qui me permet de supprimer les lignes qui n'ont pas assez de valeurs existantes à travers un filtre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import pandas as pd import numpy as np import matplotlib.pyplot as plt List_Books = ['aa', 'bb', 'cc', 'dd', 'ee', 'ff'] Spec = {'Book 1' : pd.Series([1, 2, 3, 4, 5, 6], index = List_Books), 'Book 2' : pd.Series([0, 0, 1, 2, 3, 4], index = List_Books), 'Book 3' : pd.Series([0, 0, 0, 0, 0, 1], index = List_Books)} df_Spec = pd.DataFrame(Spec) index = df_Spec.index index. name = "Book Number" df_Spec1 = df_Spec.transpose() for i in range (0, 100, 10): Filter = i/100 limitPer = len(df_Spec1.columns) * Filter df_Spec1 = df_Test.dropna(thresh=limitPer, axis=0) print(len(df_Spec1['dd'].unique()))
Le print de fin me renvoie 10 valeurs (correspondant aux 10 valeurs filtres grâce à mon filtre).
Comment pourrais-je utiliser ces valeurs pour créer un dataframe avec en 1re colonne mon i (cad mon filtre 0, 0.1, 0.2...) et en 2e colonne le nombre de valeurs correspondantes?
J'ai essayé ça mais il me renvoie la même valeur tout le temps...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 r = range (0, 110, 10) List = [*r] Test2 = {'Indicators left': pd.Series(len(df_Spec1['dd'].unique()), index = List )} df_Test2 = pd.DataFrame(Test2) df_Test2
Partager