gpt4 book ai didi

Pandas 相当于dplyr everything()

转载 作者:行者123 更新时间:2023-12-03 16:21:07 26 4
gpt4 key购买 nike

在R中,我经常将dplyrselecteverything()结合使用

df %>% select(var4, var17, everything())

上面的示例例如将对数据帧的列进行重新排序,使得 var4为第一列, var17为第二列,随后列出所有其余列。最泛泛的方式是什么?处理许多列会使他们清楚地拼写出来,并跟踪它们的位置。

理想的解决方案是简短,易读且可用于 Pandas 链。

最佳答案

对所有未在list中指定的值使用 Index.difference 并将其连接在一起:

df = pd.DataFrame({
'G':list('abcdef'),
'var17':[4,5,4,5,5,4],
'A':[7,8,9,4,2,3],
'var4':[1,3,5,7,1,0],
'E':[5,3,6,9,2,4],
'F':list('aaabbb')
})

cols = ['var4','var17']
another = df.columns.difference(cols, sort=False).tolist()
df = df[cols + another]
print (df)
var4 var17 G A E F
0 1 4 a 7 5 a
1 3 5 b 8 3 a
2 5 4 c 9 6 a
3 7 5 d 4 9 b
4 1 5 e 2 2 b
5 0 4 f 3 4 b

编辑:对于链接可能是通过传递的 DataFrame.pipe使用 DataFrame :
def everything_after(df, cols):
another = df.columns.difference(cols, sort=False).tolist()
return df[cols + another]

df = df.pipe(everything_after, ['var4','var17']))
print (df)
var4 var17 G A E F
0 1 4 a 7 5 a
1 3 5 b 8 3 a
2 5 4 c 9 6 a
3 7 5 d 4 9 b
4 1 5 e 2 2 b
5 0 4 f 3 4 b

关于 Pandas 相当于dplyr everything(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62210241/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com