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) 大熊猫用于使用方法:。