我正在研究 Pandas 并研究汽车(一个 csv 文件)。我运行了以下命令:
1) cars.iloc[[3, 0]]
Out[2]:
cars_per_cap country drives_right
IN 18 印度错误 US 809 美国真
2) cars.iloc[[3],[0]]
Out[7]:
cars_per_cap
18 年
3) 汽车.iloc[3, 0]
Out[9]: 18
我对第一个和第三个命令感到困惑,我检查了所有命令的类型,前两个是 DataFrame 而第三个不是。但是,为什么我在第 1 次和第 3 次得到不同的输出?任何帮助将不胜感激。
最佳答案
df = pd.DataFrame({'A':list('abcdef'),
'B':[4,5,4,5,5,4],
'C':[7,8,9,4,2,3],
'D':[1,3,5,7,1,0],
'E':[5,3,6,9,2,4],
'F':list('aaabbb')}, index=range(10, 16))
print (df)
A B C D E F
10 a 4 7 1 5 a
11 b 5 8 3 3 a
12 c 4 9 5 6 a
13 d 5 4 7 9 b
14 e 5 2 1 2 b
15 f 4 3 0 4 b
选择3. 和0. 行,所有列:
print (df.iloc[[3,0]])
#same as
#print (df.iloc[[3,0], :])
A B C D E F
13 d 5 4 7 9 b
10 a 4 7 1 5 a
选择3. 和0. 列,所有行:
print (df.iloc[:, [3,0]])
D A
10 1 a
11 3 b
12 5 c
13 7 d
14 1 e
15 0 f
选择3。行 和0。列 - 嵌套列表创建一个项目系列
print (df.iloc[[3],[0]])
A
13 d
同上,只是没有嵌套列表得到标量:
print (df.iloc[3,0])
d
另一种选择:
选择 3. 和 0. 行,0. 列 - 第二 []
创建一列 数据框
:
print (df.iloc[[3, 0],[0]])
A
13 d
10 a
... 如果省略,则得到 Series
:
print (df.iloc[[3, 0], 0])
13 d
10 a
Name: A, dtype: object
如果要选择一行多列:
print (df.iloc[[0], [3, 0]])
D A
10 1 a
print (df.iloc[0, [3, 0]])
D 1
A a
Name: 10, dtype: object
最后选择多行多列:
print (df.iloc[[3,0], [3,0]])
D A
13 7 d
10 1 a
关于python - cars.iloc[[3, 0]]、cars.iloc[[3]、[0]] 和 cars.iloc[3, 0] 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49380440/