从question复制示例,请考虑以下数据框:
mux = pd.MultiIndex.from_arrays([
list('aaaabbbbbccddddd'),
list('tuvwtuvwtuvwtuvw')
], names=['one', 'two'])
df = pd.DataFrame({'col': np.arange(len(mux))}, mux)
col
one two
a t 0
u 1
v 2
w 3
b t 4
u 5
v 6
w 7
t 8
c u 9
v 10
d w 11
t 12
u 13
v 14
w 15
比方说,我只想保留第二级多重索引的两行。即我的最终数据帧如下所示:
col
one two
a t 0
u 1
b t 4
u 5
c u 9
v 10
d w 11
t 12
达到上述目标的最佳方法是什么?理想情况下,我希望这样做(显然是错误的语法)
df.iloc[(:, :2)]
即级别0的所有值,级别1的前2个值。
答案 0 :(得分:3)
将class App extends Component{
render(){
return(
<Router>
<div>
<Navbar bg="light" expand="lg">
<Navbar.Brand as={Link} to='/'>Asset Management</Navbar.Brand>
<Navbar.Toggle aria-controls="basic-navbar-nav" />
<Navbar.Collapse id="basic-navbar-nav">
<Nav className="mr-auto">
<Nav.Link as={Link} to='/'>Home</Nav.Link>
<NavDropdown title="Manage" id="basic-nav-dropdown">
<NavDropdown.Item as={Link} to='/manage/category'>
Categories
</NavDropdown.Item>
</NavDropdown>
</Nav>
</Navbar.Collapse>
</Navbar>
<Route path='/' exact component={Home}/>
<Route path='/manage/category'>
<AddCategories />
<ViewCategories />
</Route>
</div>
</Router>
)}
}
与groupby一起使用
head(2)
答案 1 :(得分:2)
这是groupby
的一种方式:
df[df.groupby('one').cumcount().le(1)]
输出:
col
one two
a t 0
u 1
b t 4
u 5
c u 9
v 10
d w 11
t 12