我正在使用熊猫根据列(“ D”)中的整数对n级数组进行排序。非常重要的是,组的继承关系必须保持在仅第一级和第三级的基础上。
我尝试遵循this solution进行排序,其中排序基于索引A和B。但是,我想要根据索引A和C进行排序,如所需输出所述。我尝试使用numpy.lexsort()
来实现此目的,但是提供的链接中的答案并不能说明功能的工作原理,因此我仍然很困惑。
a = np.lexsort([results.tx.values,
results.groupby(level=[0,1]).tx.transform('sum').values,
results.groupby(level=0).tx.transform('sum').values])
这将根据示例链接中的第一个和第二个索引进行排序
示例输入:
D
A B C
Gran1 Par1 Child1 3
Child2 7
Child3 2
Par2 Child1 9
Child2 2
Par3 Child1 6
Gran2 Par1 Child1 3
Par2 Child1 6
Child2 2
Child3 3
Par3 Child1 6
Child2 8
我得到的输出:
D
A B C
Gran2 Par3 Child2 8
Child1 6
Par2 Child1 6
Child3 3
Child2 2
Par1 Child1 3
Gran1 Par1 Child2 7
Child1 3
Child3 2
Par2 Child1 9
Child2 2
Par3 Child1 6
我想要的输出:
D
A B C
Gran1 Par2 Child1 9 <--
Child2 2
Gran2 Par3 Child1 6
Child2 8 <--
Gran1 Par1 Child1 3
Child2 7 <--
Child3 2
Gran2 Par2 Child1 6 <--
Child2 2
Child3 3
Par1 Child1 4 <--
Gran1 Par3 Child1 2 <--
如您所见,我希望将A + B索引对及其所有子级中的所有子项都放在顶部,同时将B索引中的其他值分开。尝试进行这种排序(但不必要)时,使子索引C的子顺序保持一致是有帮助的。谢谢您对这个问题的任何帮助!
编辑:我还希望以相反的顺序进行操作,以使每个祖父母索引中的最小值升至顶部。请注意,此示例与上面的示例无关。
所需的输出:
D
A B C
Gran1 Par2 Child1 -15
Child2 -175 <--
Child3 -65
Gran2 Par3 Child1 -77 <--
Child2 8
Gran1 Par1 Child1 3
Child2 7
Child3 -12 <--
Gran2 Par2 Child1 6 <--
Child2 2
Child3 3
Par1 Child1 12 <--
Gran1 Par3 Child1 24 <--
我得到的输出:
D
A B C
Gran2 Par3 Child1 -77 <--
Child2 8
Gran1 Par2 Child1 -15
Child2 -175 <--
Child3 -65
Par1 Child1 3
Child2 7
Child3 -12 <--
Gran2 Par2 Child1 6 <--
Child2 2
Child3 3
Par1 Child1 12 <--
Gran1 Par3 Child1 24 <--
Edit2 :根据文本的答案,我的第二个问题的答案是df.iloc[(df.groupby(level=[0,1]).D.transform('min')).argsort().values]
答案 0 :(得分:0)
好像您需要import React from 'react'
import PropTypes from 'prop-types'
import { withStyles } from '@material-ui/core/styles'
import Card from '@material-ui/core/Card'
import CardActionArea from '@material-ui/core/CardActionArea'
import CardActions from '@material-ui/core/CardActions'
import CardContent from '@material-ui/core/CardContent'
import CardMedia from '@material-ui/core/CardMedia'
import Button from '@material-ui/core/Button'
import Typography from '@material-ui/core/Typography'
const styles = {
card: {
maxWidth: 345
},
media: {
height: 140
}
}
function Grid(props) {
const { classes } = props
return (
<Card className={classes.card}>
<CardActionArea>
<CardMedia
className={classes.media}
image="../resources/functional.png"
title="Functional Programming"
/>
<CardContent>
<Typography gutterBottom variant="h4" component="h4">
Functional Programming
</Typography>
<Typography component="p">
Functional Programming is a paradigm—a style of building the
structure and elements of computer programs—that treats computation
as the{' '}
<b>
evaluation of mathematical functions and avoids changing-state and
mutable data
</b>
.
</Typography>
</CardContent>
</CardActionArea>
<CardActions>
<Button size="small" color="primary">
SEE MORE
</Button>
</CardActions>
</Card>
)
}
Grid.propTypes = {
classes: PropTypes.object.isRequired
}
export default withStyles(styles)(Grid)
argsort