在执行group-by之后,我的新df有3级multindex。我需要访问所有带有“ZEBRA”标签的行;它包含在第3级索引中。我正在尝试使用df.loc
,但无法这样做。我想遍历标签,但这必须是一个嵌套循环才能在下面进行;这让我觉得我没有沿着正确的思路思考,肯定会更容易。
> indexlevel1_value1->indexlevel2_value1>indexlevel3_'stabilizer'
> indexlevel1_value1->indexlevel2_value2>indexlevel3_'stabilizer'
> indexlevel1_value1->indexlevel2_value3>indexlevel3_'stabilizer'
> ...................
> indexlevel2_value1->indexlevel2_value1>indexlevel3_'stabilizer'
这个问题看起来很接近-按索引选择多索引数据帧中的行而不丢失任何级别,但重点关注第一级索引。
import pandas as pd
import numpy as np
df = pd.DataFrame({'A' : ['foo', 'bar', 'foo', 'bar',
'foo', 'bar', 'foo', 'foo',
'bar', 'foo', 'bar','foo',
'bar','foo' ],
'B' : ['one', 'one', 'two', 'three',
'two', 'two', 'one', 'three',
'two', 'three','two', 'two',
'one', 'three'],
'C' : ['MR', 'ZEBRA', 'KID', 'ZEBRA',
'MOS', 'ALPHA', 'ZULU', 'ZEBRA',
'TREE','PLANT', 'JOOMLA','ZEBRA',
'MOS','ZULU'],
'D' : np.random.randn(14)})
grouped = df.groupby(['A', 'B','C'])
grouped.count()
| A | B | C | D |
|-----|-------|--------|---|
| bar | one | MOS | 1 |
| | | ZEBRA | 1 |
| | three | ZEBRA | 1 |
| | two | ALPHA | 1 |
| | | JOOMLA | 1 |
| | | TREE | 1 |
| foo | one | MR | 1 |
| | | ZULU | 1 |
| | three | PLANT | 1 |
| | | ZEBRA | 1 |
| | | ZULU | 1 |
| | two | KID | 1 |
| | | MOS | 1 |
| | | ZEBRA | 1 |
newdf= grouped.count()
newdf.loc[('bar','three','ZEBRA')]
#1
期望:
| A | B | C | D |
|-----|-------|-------|---|
| bar | one | ZEBRA | 1 |
| bar | three | ZEBRA | 1 |
| foo | three | ZEBRA | 1 |
| foo | two | ZEBRA | 1 |
您可以执行以下操作:
grouped[grouped.index.get_level_values(2) == 'ZEBRA'].reset_index()
A B C D
0 bar one ZEBRA 1
1 bar three ZEBRA 1
2 foo three ZEBRA 1
3 foo two ZEBRA 1
另一种方式: grouped.query(“C == 'ZEBRA'”).reset_index()
我喜欢在.loc中使用轴
参数:
df_out.loc(axis=0)[:, :, 'ZEBRA'].reset_index()
输出:
A B C D
0 bar one ZEBRA 1
1 bar three ZEBRA 1
2 foo three ZEBRA 1
3 foo two ZEBRA 1
因此,问题实际上是: 我创建(从熊猫文档直接复制粘贴)数据框: 这将创建一个像这样的DataFrame:(其中最左边的列实际上是索引) 然后我想给我的名字分配col2和row1的值,即4。但是我想根据col1中的值来做这件事(因为我知道这个值)。所以它看起来或多或少像这样: 我知道这没有意义,但也许有人理解这个问题,并提出了一个提示:)可能这是非常容易做到的,但我现在可以把我的头包在所有的. lo
问题内容: 我有一个pandas数据框: 我有兴趣找到其中一个标签的标签位置,例如, 查看索引值,我知道这是此标签1的整数位置。如何使熊猫知道此标签的整数值是什么? 问题答案: 您正在寻找index方法:
我正在使用Python-3.6和pandas-0.24.1 我有一个熊猫数据帧: 我需要在特定索引上找到的值 错误: 在熊猫中迭代特定列的所有元素的理想方法是什么?
问题内容: 我的问题是我希望flexbox的范围宽度可变,并且一切正常,但不在最后一行。我希望所有孩子都具有相同的尺寸,即使行中没有孩子(最后一行)也没有。 我的flex div可以缩小到150像素,最大可以增长到250像素,但是所有像素都必须具有相同的大小(很明显,我想要CSS解决方案,我知道用JS)。 问题答案: 不幸的是,在当前的flexbox迭代(级别1)中,没有干净的方法来解决最后一行的
问题内容: 我正在使用python日志记录模块在python代码中记录事件。我也希望记录2个日志文件,一个包含用户信息,另一个包含针对开发人员的更详细的日志文件。我已将两个日志文件设置为所需的级别(usr.log = INFO和dev.log = ERROR),但无法解决如何将日志记录限制为usr.log文件,因此仅写入INFO级别日志到日志文件,而不是INFO以及上面的所有其他内容,例如INFO
如何计算从特定索引开始的行数?上面的代码计算行的总数。loc1和loc2是包含工作簿、工作表、行和单元格变量的类的ref变量。