如何在 Pandas 数据帧中将字符串列左对齐?

3

我有一个数据框,包含几列。我使用Jupyter。其中一列只是字符串,该列名称为空' ':

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

print(df)

0    
1    
2    
3   * <<
4      *

如何进行左对齐,使其看起来像这样:
print(df)

0    
1    
2    
3   * <<
4   *

注意:如果只使用df,而不是print(df),它会很好地调整格式。

2
提供 df[''].to_dict() 以重现数据? - Zero
可能是 https://dev59.com/12Qm5IYBdhLWcg3w6ShR 的重复问题。 - Bharath M Shetty
@Bharathshetty 这不是重复的问题,我遇到了相反的问题。请仔细检查。 - hernanavella
@hernanavella 我不知道为什么,但在我的内核中默认是左对齐的。 :) - Bharath M Shetty
1个回答

4

选项1
使用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] 是什么意思吗?我需要根据实际数据进行调整,所以想确切了解这是什么。谢谢。 - hernanavella
1
你的列标题是 '' ,我无法使用 df["''"] 获取它。为了利用 pd.Series.str.ljust,我需要将该列作为一个序列。所以为了解决 '' 作为列标题的问题,我使用位置索引来抓取第一列 df.iloc[:, 0] - piRSquared

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接