Je me lance d'essayer de scinder mon Dataframe en 3 nouveaux Dataframes où la scission se produit lorsque le nom du fournisseur change. J'ai cherché des questions existantes. Comment scindera DataFrame sur la ligne de colonnes et Pandas & Python: Split Dataframe en plusieurs DataFrames basés sur la valeur de colonne contenant la sous-chaîne est arrivé à proximité mais je ne peux pas obtenir la sortie que je veux.
Voici attaché un jeu de données jouet pour illustrer mon problème: p> et j'ai essayé (sans succès) p> Le résultat que j'essaie d'atteindre est le suivant: P> df3 = pd.DataFrame.from_dict({i:group for i,group in df1.groupby(df1['Supplier'].ne(df1['Supplier'].shift()).cumsum() )},orient='index', columns= ['Class'])
AttributeError: 'dict' object has no attribute 'groupby'
3 Réponses :
Pour créer DataFrame pour Valeurs de fournisseur uniques forts>: Pour créer DataFrame chaque fois la valeur dans le fournisseur code> Changements forts>: p> update strong> p> Obtention de trois données distincts est incompatible avec vouloir utiliser Nous pouvons obtenir une seule image de données avec l'index restauré chaque fois qu'il y a une modification de valeur dans le Colonne de fournisseur utilisant mais si ce dernier est la solution recherchée Nous pourrions simplement utiliser pd.concat code>
groupby.cumcount code> p>
Cette seconde fait le travail! mais donne un dictionnaire, pd.dataframe.from_dict ne fonctionne pas
Pourriez-vous montrer la sortie de pd.dataframe.from_dict code> Modification de votre question? Merci !:)
un autre correspondant à l'index que Spectacle op est pd.concat ([i.Reset_index (goutte = vrai) pour _, i dans df.groupby ("fournisseur"]) code>, mais pas sûr pourquoi faire pourquoi faire Ils ont les colonnes pour chaque itération comme rangée
Essayez ceci, ou vous pouvez faire, p> pour obtenir de nombreuses colonnes si vous avez des "fournisseurs". p> sortie: p>
Imaginez qu'il y a 100 valeurs de fournisseur
Je crois que cela atteint la fractionnement que vous souhaitez:
Supplier Class
0 Supplier1 A
1 Supplier1 A
Supplier Class
0 Supplier2 A
1 Supplier2 A
2 Supplier2 A
Supplier Class
0 Supplier3 B
1 Supplier3 B
Cela ne fournit aucune nouvelle idée, ni ne donne la sortie souhaitée car vous n'avez pas défini goutte = vrai