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
4 Réponses :
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']
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)
Essayez :
df.apply(lambda x: list(x), 1)
utilisez simplement
df.iloc[1,:].to_string(header=False, index=False)
header = False -> n'inclut pas les noms de colonne dans la chaîne de sortie
index = False -> ne pas inclure d'index de ligne dans la chaîne de sortie
Êtes-vous prêt pour une chaîne comme
"'1', '2', '3'"ou"1,2,3"ferait pour vous?