我有一个DataFrame,里面有很多列,我想根据其他列的值重新组织一些列的顺序(不是所有列)。
我试着改变顺序。loc,当我运行代码时,它显示了我想要的,但当我试图用它设置值时,它没有。
例如,我只想更改类型为A的数学答案的顺序,所以最后两个答案应该是:“ABC”和“ACB”
import pandas as pd
import numpy as np
data = pd.DataFrame({'Type_Bio':['A','A','B','A','B'],
'Type_Math':['B','B','B','A','A'],
'Ans_Bio':['AEC','ABC','AAC','CBA','BCA'],
'Ans_Math':['AEC','ABC','AAC','CBA','BCA']})
data
Type_Bio Type_Math Ans_Bio Ans_Math
0 A B AEC AEC
1 A B ABC ABC
2 B B AAC AAC
3 A A CBA CBA
4 B A BCA BCA
我用这个代码来拆分数学答案:
data = pd.concat([data, data.loc[:,'Ans_Math'].str.split('', expand = True).iloc[:,1:4]], axis = 1)
Type_Bio Type_Math Ans_Bio Ans_Math 1 2 3
0 A B AEC AEC A E C
1 A B ABC ABC A B C
2 B B AAC AAC A A C
3 A A CBA CBA C B A
4 B A BCA BCA B C A
然后,我注意到:
data.loc[data.Type_Math == 'A',np.arange(1, 4)][np.arange(3,0,-1)]
给出了我想要的(几乎)(只有我想要的线条,颠倒!)
3 2 1
3 A B C
4 A C B
因此,下一步是设置值:
data.loc[data.Type_Math == 'A',np.arange(1, 4)] = data.loc[data.Type_Math == 'A',np.arange(1, 4)][np.arange(3,0,-1)]
data
但数据本身没有改变:
Type_Bio Type_Math Ans_Bio Ans_Math 1 2 3
0 A B AEC AEC A E C
1 A B ABC ABC A B C
2 B B AAC AAC A A C
3 A A CBA CBA C B A
4 B A BCA BCA B C A
我知道复制设置有一些错误,但我想使用。loc不会有这个问题,请有人解释并帮助?
这就是你要找的:
data.loc[data.Type_Math == 'A', [1,2,3]] = data.loc[data.Type_Math == 'A', [3,2,1]].values
输出:
Type_Bio Type_Math Ans_Bio Ans_Math 1 2 3
0 A B AEC AEC A E C
1 A B ABC ABC A B C
2 B B AAC AAC A A C
3 A A CBA CBA A B C
4 B A BCA BCA A C B
我有以下(): 我按分配添加更多列: 如何将列移到前面,即将其设置为第一列,其他列的顺序保持不变?
我使用的是,它用于根据中的当前查询筛选中的数据,如如何使用SearchView筛选RecyclerView中所述。 问题是项目的顺序也必须能够改变。通过具有方法的类与交互。如果用户更改了项目的排序方式,我需要更改它,但我不确定如何做到这一点。 当前的情况只需要颠倒顺序,所以这个问题可以通过和来解决,但我想知道如何提供一种完全不同的方式来排序中的项目。
问题内容: 我有以下: 我通过分配添加了更多列: 如何将列mean移到最前面,即将其设置为第一列,而其他列的顺序保持不变? 问题答案: 你还可以执行以下操作: 你可以通过以下方式获取列列表: 输出将产生: …然后轻松将其放到第一个功能中即可手动重新排列
问题内容: 我正在创建一个RESTful Web服务(在Golang中),该服务从数据库中提取一组行并将其返回给客户端(智能手机应用程序或Web应用程序)。该服务需要能够提供分页。唯一的问题是,此数据在定期更改的“计算”列上排序(例如,网站上某内容的“竖起大拇指”或“竖起大拇指”的数量),因此 行可以在在客户的要求之间 。 我看了一些PostgreSQL功能,可以潜在地用来帮助我解决这个问题,但是
问题内容: 这是一个非常基本的问题,但是我正在尝试使用以下方法更改node.js / Express应用程序的图标 而且我仍在使用默认图标。这是在我的功能,是的,我已经验证,有 是 一个在。还有的约没有在控制台中,要么,我相信这线索,这行代码被忽略。函数中的其他所有内容(设置端口,设置视图目录,设置模板引擎等)似乎都正常,那么为什么这行代码无法执行? 我尝试了什么 清空浏览器缓存 重新启动终端并再
问题内容: 我需要能够增加和减少对象中数组元素的位置。 我在MongoDB API中 查看了该API,但找不到任何让我这样做的东西。 我正在尝试使用贯通,并且我知道要向上或向下移动的元素的索引。 编码图像数组项的示例: 我想向上或向下移动“ img2”(但由于无处可去,因此“图像”应该不能向上推)。 如果我想向上推“ img2”,那么结果将是: 通过更改索引,交换或上推/下推来实现此目标都没有关系