gpt4 book ai didi

python - 是否有模仿 pandas.DataFrame.iloc 的 Excel 等效方法?

转载 作者:行者123 更新时间:2023-12-04 08:58:59 24 4
gpt4 key购买 nike

给定一个包含 30 行数据的 Excel 电子表格,如下所示:

|------|------------|
| id | text |
|------|------------|
| 1 | apple |
| 2 | apple |
| 3 | banana |
| 4 | apple |
| 5 | orange |
| ... | ... |
| 30 | orange |
|------|------------|
我想知道是否有办法进行基于整数位置的索引。例如,如果我想返回从第 2 行开始的前 3 行,我会使用 df.iloc[2:5] :
expected output:
|------|------------|
| 2 | apple |
| 3 | banana |
| 4 | apple |
|------|------------|
我最终希望在 Excel 中指定 (1) 起始位置和 (2) 从起始位置返回的行数(例如,从 id=21 开始返回 10 行)。我尝试使用 INDEX 创建一个数组,但无法弄清楚。

最佳答案

您需要两个功能:
MATCH 将在一个范围内找到一个值并返回它们的位置
INDIRECT 将允许您指定表示范围的字符串,并将返回该范围中包含的值。

MATCHfunction

INDIRECTfunction


做了一个这样的测试:
enter image description here
我在 K9 中的公式是:
=INDIRECT("A"&MATCH(L4;A:A;0)&":B"&(MATCH(L4;A:A;0)-1+L5))
这是它的工作原理:
  • MATCH(L4;A:A;0)将在 A 列中找到 ID 位置。因为我说我在整列中搜索,所以返回的值是 ID 所在的行号。所以如果我想查找 ID 2,它将返回 3 .
  • 我们将上一步中的数字与一个字符串结合起来,得到一个像 A3:B5 这样的字符串。 . 5 来自 MATCH(L4;A:A;0)-1+L5)我在哪里得到我要查找的ID的行号,将要获取的行数相加,然后减去1。
  • INDIRECT("A3:B5")是我想要的,它被退回了。

  • 注意:根据您的 Excel 版本,INDIRECT 是否会自动扩展到相邻单元格。也许你必须手动拖动它
    如果我想搜索不同的 id 或不同的行数,视频会显示它如何变化:
    enter image description here
    注 2:如果没有找到 id,MATCH 会报错,公式也不起作用。
    首先使用 COUNTIF 检查 ID 是否存在于 A 列中,如果为真,则执行 MATCH 和 INDIRECT。像这样的东西: =IF(COUNTIF(A:A;L4)>0;INDIRECT("A"&MATCH(L4;A:A;0)&":B"&(MATCH(L4;A:A;0)-1+L5));"ID NOT FOUND")如果返回的行数为 0 或更少,则相同。

    关于python - 是否有模仿 pandas.DataFrame.iloc 的 Excel 等效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63652603/

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