Python 数据框打印顺序排序不正确

Python 数据框打印顺序排序不正确,python,pandas,Python,Pandas,我注意到,当我做了以下事情时: states_years.boxplot(column=['Col of interest'], by=['Characters', 'Numbers'], sym='rx') 箱线图按字母顺序“字符”排序,但“数字”并不总是按字母顺序排序。例如,从左到右的顺序可能是 阿拉巴马州,2012年;阿拉巴马州,2013年,纽约,2013年;2012年,纽约 在执行boxplot之前是否需要对数据帧进行排序,或者在调用boxplot时是否可以执行某些操作 更新 我找到

我注意到,当我做了以下事情时:

states_years.boxplot(column=['Col of interest'], by=['Characters', 'Numbers'], sym='rx')
箱线图按字母顺序“字符”排序,但“数字”并不总是按字母顺序排序。例如,从左到右的顺序可能是

阿拉巴马州,2012年;阿拉巴马州,2013年,纽约,2013年;2012年,纽约

在执行boxplot之前是否需要对数据帧进行排序,或者在调用boxplot时是否可以执行某些操作


更新 我找到了“臭虫”。问题是拖尾空间导致排序出错

所以我想我的问题是:

  • 我如何用这种方式清理尾随空间

我将赏赐给最优雅的解决方案。提前感谢您的帮助

您可以通过以下方式将
条带
应用于列中的每个元素:

states_years[column] = states_years[column].apply(lambda s: s.strip())

可以通过以下方式将
strip
应用于列中的每个元素:

states_years[column] = states_years[column].apply(lambda s: s.strip())

另一种方法是稍微短一点的方法(尽管事实上与@chthonicdaemon的解决方案没有什么不同):


另一种方法是稍微短一点的方法(尽管事实上与@chthonicdaemon的解决方案没有什么不同):



你用的是什么版本的熊猫?通常情况下,应该对组进行排序(它在引擎盖下使用groupby,默认情况下对组进行排序)。您能提供一个最简单的工作示例吗?很抱歉我的回复太晚。我一直很忙。我终于有时间准备一个最简单的工作示例,但这帮助我解决了这个问题——跟踪空间在哪里(请参阅我的更新)您使用的熊猫版本是什么?通常情况下,应该对组进行排序(它在引擎盖下使用groupby,默认情况下对组进行排序)。您能提供一个最简单的工作示例吗?很抱歉我的回复太晚。我一直很忙。我终于找到时间准备一个最小的工作示例,但这帮助我解决了这个问题-其中拖尾空格(请参阅我的更新)喜欢这个想法,但我缺少
inplace=True
replace
方法所具有的()-否则它将只返回一个序列而不是一个数据帧。这是问题吗?
df.some\u方法(inplace=True)
基本上只是
df=df.some\u方法()
的语法糖问题是,正如我所记得的,这个系列不做箱线图。但我确实认为,您的代码会起作用,因为您正在数据帧中更改一个系列(请注意,我对pandas还是很陌生)。非常感谢您的帮助。我喜欢这个想法,但是我缺少
inplace=True
方法,就像
replace
方法一样()-否则它只返回一个序列而不是一个数据帧这是问题吗?
df.some\u方法(inplace=True)
基本上只是
df=df.some\u方法()
的语法糖问题是,正如我所记得的,这个系列不做箱线图。但我确实认为,您的代码会起作用,因为您正在数据帧中更改一个系列(请注意,我对pandas还是很陌生)。非常感谢您的帮助。这只是稍微优雅一点。不仅更优雅,而且速度更快!谢谢joris,我直到现在才知道这件事。这只是稍微优雅一点。不仅更优雅,而且更快!谢谢乔里斯,我直到现在才知道这件事。