【问题标题】:How to sort column names with different characters(., !, @, $, (, &) in a dataframe with python如何使用python在数据框中对具有不同字符(.、!、@、$、(、&)的列名进行排序
【发布时间】:2021-02-26 09:02:25
【问题描述】:

我要排序的数据框具有超过 5000 列的名称,包括字符、标点符号、数字、点、括号等。所有这些列都重复了 4 次。重复列的值相同。标题名称的子集如下所示:

    ['I','single', 'game', 'I.1', 'Cliff', ',', 'on', 'me', 'RT', '@USER', ':', 'Texas', '(', 
     'cont', ')', 'URL', 'RT.1', '@USER.1', ':.1', '4', 'the', 'lingerie', 'party', '?????', 
     'Wednesday', 'ã\x80\x8bhave', 'a.1', 'nice', 'day', ':)', 'RT.2', '@USER.2']

首先,我需要从所有名称中删除整数后缀,例如“I.1”应该是“I”,类似地,从所有列名中删除所有其他后缀。

其次,所有列以相同的顺序重复四次。我需要按照这个顺序对它们进行排序:

      ['I', 'I','I','I','single','single''single''single','game', 'game','game','game','I',  
       'I','I','I','.', 'Cliff', 'Cliff','Cliff','Cliff',','','','',', 'on','on','on','on',  
       .... and so on]

在这里,“我”与“单身”和“游戏”应该放在一起,而不是另一个“我”。 sort_index() 和 reset_index() 等函数给出了排序顺序,但不是我需要的。

任何帮助。

【问题讨论】:

  • “排序”是什么意思?一些相等的值并不相邻。
  • 我从来没有说过它们是排序的?问题是如何对它们进行排序。我所说的顺序是指重复的三组与原始第一组列名的顺序相同。像 a, b, s,4,a,.,e.....f, a, b, s,4,a,.,e.....f, a, b, s,4,a ,.,e......f, a, b, s,4,a,.,e......f.所以我希望它们像 a,a,a,a,b,b,b,b,s,s,s,s,4,4,4,4,a,a,a,a,.,.,。 ,.,e,e,e,e......f,f,f,f.

标签: python pandas dataframe indexing duplicates


【解决方案1】:

我尝试了不同的方法,但由于字符作为名称的奇怪性质以及具有特定格式要求的一长列列,我找不到合适的解决方案。

我找到并且对我有用的解决方案是首先我转置数据框。然后我用数字创建一个单独的索引列,并使用这个索引以我重新获取的格式对数据框进行排序。虽然它可能不是完美的解决方案,但通过这样做,我可以轻松地对其进行进一步处理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-10
    • 1970-01-01
    • 1970-01-01
    • 2016-10-08
    • 1970-01-01
    • 2020-01-11
    • 1970-01-01
    相关资源
    最近更新 更多