J'ai un fichier séparé par tabulation comme cet exemple:
petit exemple: p> Je veux regrouper les lignes en fonction de Sortie attendue: P> 5ème code> , 6th code> et 7th code> colonnes et somme les valeurs de 4th code> de chaque groupe.
Voici la sortie attendue: p> import pandas as pd
df = pd.read_csv('myfile.txt', sep='\t', header=None)
df = df.groupby(5, 6, 7, 8).sum()
4 Réponses :
Essayez ceci:
df.groupby(['column1', 'column2'])
Dataframe d'entrée: Ne tenant compte que les 3 premières lignes, aime ceci, p> sortie: ceci est un multi-niveau trame de données. La dernière colonne est votre sortie, P> col5 col6 col7 col8
chr5 112312630 112321662 DCP2 31
137676883 137676949 FAM53C 165
Ce retour: 2994450 2994675 rhno1 ENST00000461997.2 CHR12 7155218 7155278 CTDNEP1 ENST00000318988.6 CHR17CHR17 9286722 9286821 DENND5A ENST00000328194.3 CHR11
@ user10657934 Fournissez votre fichier de jeu de données afin que je puisse résoudre ce problème.
L'exemple de la question est exactement une partie de mon fichier
@ user10657934 Permettez-moi de faire de l'image de données de ceci et de vous donner un exemple de code dans un moment.
@ user10657934 char5 code> est une colonne de données ou une index?
@ user10657934 Regardez la réponse mise à jour. Faites-moi savoir si cela a bien fonctionné pour vous.
Il vous suffit de regrouper les colonnes:
df.groupby([5,6,7,8]).sum()
Non, il s'agit de toutes les colonnes numériques par Somme code> et op n'ont besoin que de 4. code> Colonne, mais il est également nécessaire de ne pas perdre toutes les autres colonnes - Vérifiez ma solution
Je mets op sur le chemin ... Après bien sûr, si peut être réglé.
Vous avez besoin d'agrégats par < Code> DataFramegroupby.agg Code> avec dictionnaire de colonnes avec fonctions agrégées, ici toute la colonne différente par cols code> est globate par Dernier code> ou premier code> , seulement 4 code> colonne est agrégée par somme code>:
Dupliqué possible de Pandas Group-by and Sum