0
votes

Puis-je trier mes données NP.Array une fois qu'elle a été ajoutée à une colonne dans un fichier de données Pandas?

J'ai une colonne de données NP.Array que j'ajoute à la dernière colonne de My Pandas Dataframe. Cependant, j'ai besoin des données trisées par ordre croissant à l'intérieur de ce np.array. (Il n'est pas trié dans l'ordre croissant dans le Dataframe à partir duquel il est pris.)

Structure de données: P>

df = pd.read_csv('dfall.csv')

dfgfp = df.loc[:, 'GFP_spot_1_position':'GFP_spot_4_position']

df['gfp_spots_all'] = dfgfp.apply(lambda r: list(r), 
    axis=1).apply(np.array)

df.head()


2 commentaires

Avez-vous besoin que les colonnes elles-mêmes soient triées, ou uniquement les chiffres de la dernière colonne? Si c'est ce dernier, vous devriez être capable d'inclure trié (liste (x)) dans votre lambda


Avez-vous effectué une recherche via les pandas ou la documentation numpy pour une méthode de tri? pandas.pydata.org/pandas-docs/stable ... docs.cipy.org/doc/numpy/reeference/index.html


4 Réponses :


0
votes

Il semble que vous puissiez, voir le code ci-dessous

     0     1     2     3    4    5
0   1.0   2.0   3.0   4.0  5.0  7.0
1  11.0  12.0  18.0  18.0  NaN  NaN


0 commentaires

0
votes

Selon @g. Le commentaire d'Anderson, ajout d'un trié () à votre expression de Lambda résoudra le problème. En fait, un peu de code dans votre exemple est redondant: xxx

Je crois que cela fera ce dont vous avez besoin.


0 commentaires

0
votes

Il doit y avoir un moyen plus pythonique de le faire, mais voici une solution résolve ceci: xxx


1 commentaires

Ah, merci beaucoup! Ce n'était pas la réponse entière mais cela a aidé !!



0
votes
# Here's what worked   
df = pd.read_csv('dfall.csv')
dfgfp = df.loc[:, 'GFP_spot_1_position':'GFP_spot_4_position']
df['gfp_spots_all'] = dfgfp.apply(lambda r: list(r), axis=1).apply(np.array)
dfjust = pd.DataFrame([df.gfp_spots_all]).transpose()


## Loop on each row
for i in range(len(dfjust)):
     for k in range(len(dfjust.columns)):
         dfjust.iloc[i][k].sort()

dfjust.head()

[out:]
    gfp_spots_all .      
0   [3.4165, 19.63, nan, nan]                       
1   [6.7447, 18.044, nan, nan]         
2   [5.088, 10.261, nan, nan]         
3   [5.4081, 16.097, nan, nan]     
4   [4.2675, nan, nan, nan]      


5 rows × 1 columns

0 commentaires