当前位置: 首页 > 面试题库 >

如何重新排列pandas列的顺序?

华星文
2023-03-14
问题内容

df =DataFrame({‘a’:[1,2,3,4],’b’:[2,4,6,8]})
>>> df[‘x’]=df.a + df.b
>>> df[‘y’]=df.a - df.b
>>> df
a b x y
0 1 2 3 -1
1 2 4 6 -2
2 3 6 9 -3
3 4 8 12 -4

现在,我想重新排列列顺序,按如下方式使“ x”,“ y”列成为第一列和第二列:

>>> df = df[['x','y','a','b']]
>>> df
    x  y  a  b
0   3 -1  1  2
1   6 -2  2  4
2   9 -3  3  6
3  12 -4  4  8

但是,如果我有一个很长的单词’a’,’b’,’c’,’d’.....,并且我不想明确列出这些列。我怎样才能做到这一点 ?

还是Pandas提供类似的功能set_column_sequence(dataframe,col_name, seq)以便我可以做到:
set_column_sequence(df,'x',0)set_column_sequence(df,'y',1)


问题答案:

def _col_seq_set(df, col_list, seq_list):
‘’‘ set dataframe ‘df’ col_list’s sequence by seq_list ‘’‘
col_not_in_col_list = [x for x in list(df.columns) if x not in col_list]
for i in range(len(col_list)):
col_not_in_col_list.insert(seq_list[i], col_list[i])

    return df[col_not_in_col_list]
DataFrame.col_seq_set = _col_seq_set


 类似资料:
  • 问题内容: 我需要移动现有列的位置(以获得更好的可见性)。 如何做到这一点而又不影响数据? 问题答案: 修改也可以。看一看:

  • 问题内容: 如果我有列表,如何以任意方式重新排序商品? 编辑:我不想洗牌。我想以预定义的方式对它们进行重新排序。(例如,我知道旧列表中的第3个元素应成为新列表中的第一个元素) 问题答案: 你可以这样

  • 问题内容: 我确信这个问题以前可能已经被问过,但我似乎找不到正确的答案。如果我有两个清单 我正在尝试使用_list1重新排列_list2中的元素,以便它们完全匹配顺序。什么是最干净的方法?所需的输出: 很抱歉,如果这是重复的,但到目前为止,我只能使用压缩的sorted()方法找到数字列表的答案。 如果_list2是列表列表怎么办? 所需输出: 还有一个假设:如果我想使用_list1作为键对其他任何

  • 我有一个Python Pandas数据帧。df有2列,我想按第二列对df进行排序。 我想按角度排序df(升序)。

  • 我有两个dataframes(df1和df2,如下所示),它们的列在顺序和计数上都不同。我需要将这两个数据页追加到一个Excel文件中,其中的列顺序必须按照下面中指定的顺序。 df1为: 我正在尝试使用根据Col_list重新排序我的dataframe。对于dataframe中不存在的列值,该值可以是NaN。 这不能正常工作。如何实现此重新排序? 我尝试了以下方法:

  • 问题内容: 我试图弄清楚如何以一种聪明的方式对由于groupby聚合而生成的系列进行排序。 我像这样生成DataFrame的聚合: 这导致了一个系列。我现在尝试按值对它进行排序,但是会出现错误: 然后,我尝试创建一个副本: 我怎样才能使这种工作? 问题答案: 使用,即。[ 熊猫v0.17 + ] (非常老的答案,v0.17之前/ 2015) 大熊猫用于使用方法:。