gpt4 book ai didi

python - 为什么 df[[2,3,4]][2 :4] works and df[[2:4]][2:4] does not in Python

转载 作者:太空宇宙 更新时间:2023-11-04 03:03:52 25 4
gpt4 key购买 nike

假设我们有一个数据帧

import pandas as pd
df = pd.read_csv('...')
df
0 1 2 3 4
0 1 2 3 4 5
1 1 2 3 4 5
2 1 2 3 4 5
3 1 2 3 4 5
4 1 2 3 4 5

为什么一种方法有效而其他方法返回语法错误?

最佳答案

失败是因为 2:4 是访问 df 的键/列的无效语法:

In [73]:
df[[2:4]]
File "<ipython-input-73-f0f09617b349>", line 1
df[[2:4]]
^
SyntaxError: invalid syntax

这与定义字典并尝试相同语法没有什么不同:

In [74]:
d = {0:0,1:1,2:2,3:3,4:4,5:5}
d

Out[74]:
{0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5}

In [76]:
d[[2:4]]

File "<ipython-input-76-ea5d68adc389>", line 1
d[[2:4]]
^
SyntaxError: invalid syntax

[] 语法用于访问匹配的列标签,你不能像这样通过列表中的切片来访问一系列列,它需要是一个值列表正如你已经发现的那样

ilocixloc 等较新的方法支持切片范围

对您有用的是,最初使用列表中的标签选择列:

In [77]:
df[[2,3,4]]

Out[77]:
2 3 4
0 3 4 5
1 3 4 5
2 3 4 5
3 3 4 5
4 3 4 5

然后通过切片选择行:

In [79]:
df[[2,3,4]][2:4]

Out[79]:
2 3 4
2 3 4 5
3 3 4 5

关于python - 为什么 df[[2,3,4]][2 :4] works and df[[2:4]][2:4] does not in Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40131360/

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