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