python visual studio pandas_pandas DataFrame索引行列的实现
python版本: 3.6
pandas版本: 0.23.4
行索引
索引行有三種方法,分別是 loc iloc ix
import pandas as pd
import numpy as np
index = ["a", "b", "c", "d"]
data = np.random.randint(10, size=(4, 3))
df = pd.dataframe(data, index=index)
"""
0 1 2
a 9 7 1
b 0 0 7
c 2 6 5
d 8 2 5
"""
loc
loc通過行索引名字來確定行的
單行索引, 返回series對(duì)象
df.loc["a"]
"""
0 9
1 7
2 1
name: a, dtype: int64
"""
df.loc["b"]
"""
0 0
1 0
2 7
name: b, dtype: int64
"""
多行索引, 返回dataframe對(duì)象
df.loc[["a", "c"]]
"""
0 1 2
a 9 7 1
c 2 6 5
"""
iloc
通過行索引序號(hào)來確定行的
單行索引, 返回series對(duì)象
df.iloc[0]
"""
0 9
1 7
2 1
name: a, dtype: int64
"""
df.iloc[1]
"""
0 0
1 0
2 7
name: b, dtype: int64
"""
多行索引, 返回dataframe對(duì)象
df.iloc[[0, 2]]
"""
0 1 2
a 9 7 1
c 2 6 5
"""
ix(不建議使用)
通過行索引名字或序號(hào)來確定行的, 如果行索引 index 的類型為整型時(shí), 使用 ix 方法索引時(shí)為按行索引名字進(jìn)行索引, 如行索引名不存在則會(huì)報(bào)錯(cuò)
index = [2, 3, 4, 5]
df = pd.dataframe(data, index=index)
"""
0 1 2
2 9 7 1
3 0 0 7
4 2 6 5
5 8 2 5
"""
df.ix[2]
"""
0 9
1 7
2 1
name: 2, dtype: int64
"""
# 提示信息
"""
.ix is deprecated. please use
.loc for label based indexing or
.iloc for positional indexing
"""
# 如果 index 為整數(shù), 則不能按行索引號(hào)進(jìn)行索引
df.ix[0]
"""
...
keyerror: 0
"""
列索引
索引行有兩種方法,分別是 . []
import pandas as pd
import numpy as np
columns = ["i", "ii", "iii"]
data = np.random.randint(10, size=(4, 3))
df = pd.dataframe(data, columns=columns)
"""
i ii iii
0 4 5 9
1 0 3 4
2 7 9 1
3 8 2 3
"""
通過 . 屬性直接獲取指定行, 返回series對(duì)象
df.i
"""
0 4
1 0
2 7
3 8
name: i, dtype: int64
"""
[]
單列索引, 返回dataframe對(duì)象
df[["i"]]
"""
i
0 4
1 0
2 7
3 8
"""
多列索引, 返回dataframe對(duì)象
df[["i", "ii"]]
"""
i ii
0 4 5
1 0 3
2 7 9
3 8 2
"""
同時(shí)索引行及列
通過指定索引名或切片方式進(jìn)行索引
index = ["a", "f", "c", "h"]
columns = ["i", "ii", "iii"]
df = pd.dataframe(data, index=index, columns=columns)
"""
i ii iii
a 4 5 9
f 0 3 4
c 7 9 1
h 8 2 3
"""
loc
通過指定行及列索引名進(jìn)行索引, 返回dataframe對(duì)象
df.loc[["a", "f"], ["ii", "iii"]]
"""
ii iii
a 5 9
f 3 4
"""
通過指定行及列索引名范圍進(jìn)行索引(包含邊值), 返回dataframe對(duì)象
df.loc["a":"c", "ii":"iii"]
"""
ii iii
a 5 9
f 3 4
c 9 1
"""
iloc
通過指定行及列索引號(hào)進(jìn)行索引, 返回dataframe對(duì)象
df.iloc[[0, 1], [1, 2]]
"""
ii iii
a 5 9
f 3 4
"""
通過指定行及列索引號(hào)范圍進(jìn)行切片索引(左閉右開), 返回dataframe對(duì)象
df.iloc[:3, 1:3]
"""
ii iii
a 5 9
f 3 4
c 9 1
"""
ix(不建議使用)
通過指定行及列索引號(hào)范圍或名字范圍進(jìn)行切片, 返回dataframe對(duì)象
df.ix["a":"c", "i":"iii"]
df.ix["a":"c", 1:3]
df.ix[:3, 1:3]
tips: 只有使用 iloc 或 ix 按索引號(hào)進(jìn)行切片索引時(shí)才為左閉右開, 其余全閉
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持萬仟網(wǎng)。
如您對(duì)本文有疑問或者有任何想說的,請(qǐng)點(diǎn)擊進(jìn)行留言回復(fù),萬千網(wǎng)友為您解惑!
總結(jié)
以上是生活随笔為你收集整理的python visual studio pandas_pandas DataFrame索引行列的实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [云炬创业基础笔记]第六章商业模式测试1
- 下一篇: [云炬创业基础笔记]第六章商业模式测试2