Python 如何使用列名列表对数据帧进行排序

Python 如何使用列名列表对数据帧进行排序,python,pandas,csv,sorting,dataframe,Python,Pandas,Csv,Sorting,Dataframe,我在Python2.7上使用Pandas 0.22.0,其中PyCharm作为IDE 我正在尝试使用循环对多个数据帧进行排序。这些数据帧是从.csv文件创建的,然后使用pandas中的“xlsxwriter”转换为xlsx 我已经创建了一个包含所有排序要求的排序列表,这样当我运行我的循环时,它将拾取一个csv文件,将其转换为一个数据帧,“排序”(我卡住的地方),然后将整个内容输出为一个.xlsx文件,以便可以在MSEXCEL中播放 如果我使用df=df.sort_值(按=['SITE'、'DEP

我在Python2.7上使用Pandas 0.22.0,其中PyCharm作为IDE

我正在尝试使用循环对多个数据帧进行排序。这些数据帧是从.csv文件创建的,然后使用pandas中的“xlsxwriter”转换为xlsx

我已经创建了一个包含所有排序要求的排序列表,这样当我运行我的循环时,它将拾取一个csv文件,将其转换为一个数据帧,“排序”(我卡住的地方),然后将整个内容输出为一个.xlsx文件,以便可以在MSEXCEL中播放

如果我使用
df=df.sort_值(按=['SITE'、'DEPARTMENT'、'LOCATION'、'ASSET_TYPE'、'ASSET_NAME'])
则没有问题

但是,如果我使用这个:
df=df.sort\u值(by=sorts[0])
,代码就会崩溃

    Traceback (most recent call last):
      File "D:/OneDrive/Programming Practice/Python/Rubaiyat/test1.py", line 55, in <module>
        df = df.sort_values(by=(sorts[0]))
      File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 3619, in sort_values
        k = self.xs(by, axis=other_axis).values
      File "C:\Python27\lib\site-packages\pandas\core\generic.py", line 2335, in xs
        return self[key]
      File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 2139, in __getitem__
        return self._getitem_column(key)
      File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 2146, in _getitem_column
        return self._get_item_cache(key)
      File "C:\Python27\lib\site-packages\pandas\core\generic.py", line 1842, in _get_item_cache
        values = self._data.get(item)
      File "C:\Python27\lib\site-packages\pandas\core\internals.py", line 3843, in get
        loc = self.items.get_loc(item)
      File "C:\Python27\lib\site-packages\pandas\core\indexes\base.py", line 2527, in get_loc
        return self._engine.get_loc(self._maybe_cast_indexer(key))
      File "pandas\_libs\index.pyx", line 117, in pandas._libs.index.IndexEngine.get_loc
      File "pandas\_libs\index.pyx", line 139, in pandas._libs.index.IndexEngine.get_loc
      File "pandas\_libs\hashtable_class_helper.pxi", line 1265, in pandas._libs.hashtable.PyObjectHashTable.get_item
      File "pandas\_libs\hashtable_class_helper.pxi", line 1273, in pandas._libs.hashtable.PyObjectHashTable.get_item
    KeyError: "'SITE', 'DEPARTMENT', 'LOCATION', 'ASSET_TYPE', 'ASSET_NAME'"
任何帮助或指导都将不胜感激。
谢谢。

您正在创建一个字符串:
“'SITE'、'DEPARTMENT'、'LOCATION'、'ASSET\u TYPE'、'ASSET\u NAME'”

我认为应该是这样的:

sorts = [['SITE', 'DEPARTMENT', 'LOCATION', 'ASSET_TYPE', 'ASSET_NAME'],
        'ASSET_TYPE_NAME', 
        'ASSET_STATUS_NAME',
        ['SITE_NAME', 'LOCATION_NAME'],
        'DEPARTMENT_NAME',
        'SITE_NAME',
        'USER_NAME']

这成功了!谢谢奇怪的是,这是我第一次看到这种写列表的方式,而且奇怪的是,其他列表“columnNames”只是用括号隔开,它们也在工作。这样做有什么原因而不是其他原因吗?再次感谢!
sorts = [['SITE', 'DEPARTMENT', 'LOCATION', 'ASSET_TYPE', 'ASSET_NAME'],
        'ASSET_TYPE_NAME', 
        'ASSET_STATUS_NAME',
        ['SITE_NAME', 'LOCATION_NAME'],
        'DEPARTMENT_NAME',
        'SITE_NAME',
        'USER_NAME']