2017-09-28 3 views
2

J'ai une trame de données avec plusieurs colonnes. J'utilise Jupyter. L'une des colonnes est juste des chaînes, le nom de colonne particulière est vide ' « :Comment justifier (à gauche) une colonne de chaînes de caractères dans pandas dataframe?

df = pd.DataFrame([[""], [""], [""], ['*'], ['* <<']], 
        columns=[''], 
        index=[0, 1, 2, 3, 4]) 

print(df) 

0  
1  
2  
3 * << 
4  * 

Comment puis-je justifier à gauche, il ressemble à ceci:

print(df) 

0  
1  
2  
3 * << 
4 * 

Note: si je viens d'utiliser df , au lieu de print (df), ça justifie bien.

+2

Fournir 'df [ '']. To_dict()' reproduire les données? – Zero

+0

Copie possible de https://stackoverflow.com/questions/17232013/how-to-set-the-pandas-dataframe-data-left-right-alignment – Dark

+0

@Bharathshetty Ce n'est pas un doublon, j'ai le problème inverse. Vérifiez attentivement. – hernanavella

Répondre

1

Option 1
Utilisez pd.Series.str.ljust

df.iloc[:, 0] = (lambda s: s.str.ljust(s.str.len().max()))(df.iloc[:, 0]) 
df 

0  
1  
2  
3 * 
4 * << 
+0

pouvez-vous élaborer un peu sur ce que [:, 0] fait, je vais devoir adapter la réponse aux données réelles où l'index est différent, donc je veux savoir o c'est exactement cela.Merci. – hernanavella

+1

Votre en-tête de colonne est '''' et je ne peux pas l'attraper avec 'df [" '' "]'. J'ai besoin de la colonne en série pour tirer parti de 'pd.Series.str.ljust'. Donc, pour résoudre le problème d'avoir '' '' comme en-tête de colonne, j'utilise l'indexation positionnelle pour saisir cette première colonne 'df.iloc [:, 0]' – piRSquared