3
votes

Convertir la ligne de dataframe en chaîne de valeurs sans index de colonne en python

J'ai une ligne de dataframe et je souhaite l'obtenir sous la forme d'une chaîne contenant uniquement les valeurs, pas de colonnes.

"['1' '2'\n '3']"

Je voudrais pouvoir sélectionner une seule ligne et l'avoir sous forme de chaîne comme:

'1','2','3'

Mais je continue à obtenir les noms de colonnes toujours là, ou beaucoup d'autres valeurs comme:

col1 | col2 | col3
-----------------
1    | 2    | 3
x    | y    | z


1 commentaires

Êtes-vous prêt pour une chaîne comme "'1', '2', '3'" ou "1,2,3" ferait pour vous?


4 Réponses :


1
votes

Vous pouvez utiliser iloc qui prend un index et fournit les résultats. iloc [row_indexes, column_indexes]

Ainsi, df.iloc [0 ,:] prendrait la première (0e) ligne et toutes les colonnes. Il renverra une série, vous pouvez donc utiliser la compréhension de liste [str (x) for x in iterable] pour renvoyer les valeurs sous forme de chaînes.

import pandas as pd

df = pd.DataFrame({'a':[1, 2], 'b':[3, 4], 'c':[5, 6]})

[str(x) for x in df.iloc[0,:]]

['1', '3', '5']


0 commentaires

1
votes

Si vous voulez juste une chaîne des valeurs de la ligne 0 concaténée avec , vous pouvez faire comme suit:

>> print s
1,2,3

Le la liste ressemblerait à:

>> print l
['1' '2' '3']

Et la chaîne que vous obtenez est:

import pandas as pd
df = pd.DataFrame({"col1":[1,"x"],"col2":[2,"y"],"col3":[3,"z"]})
l = df.iloc[0,:].apply(str).values
s = ",".join(l)


0 commentaires

0
votes

Essayez :

df.apply(lambda x: list(x), 1)


0 commentaires

5
votes

utilisez simplement

df.iloc[1,:].to_string(header=False, index=False)
  1. header = False -> n'inclut pas les noms de colonne dans la chaîne de sortie

  2. index = False -> ne pas inclure d'index de ligne dans la chaîne de sortie


0 commentaires