已信任
Jupyter 服务器: 本地
Python 3: Not Started
[36]
import pandas as pd
import numpy as np
[37]
# .loc基于标签
# .iloc基于索引
[39]
df = pd.DataFrame(np.random.randn(8,4),index=['a','b','c','d','e','f','g','h'],columns=['A','B','C','D'])
df
A B C D
a -0.629391 -2.199736 0.547864 0.137235
b 0.346160 0.648808 0.290378 -0.598081
c 1.658532 1.114108 -1.595136 0.196397
d -0.760715 -0.186863 1.043977 0.287979
e 0.220411 -1.352767 0.924732 -0.456502
f -1.952481 1.228079 0.900851 0.597607
g -1.683863 1.276186 -0.551237 -0.278381
h 0.083268 1.494524 0.162098 0.414894
[40]
# 选择A和B列所有内容
df.loc[:,['A','B']]
A B
a -0.629391 -2.199736
b 0.346160 0.648808
c 1.658532 1.114108
d -0.760715 -0.186863
e 0.220411 -1.352767
f -1.952481 1.228079
g -1.683863 1.276186
h 0.083268 1.494524
[41]
# 选择标签选择a-h行
df.loc['a':'e']
A B C D
a -0.629391 -2.199736 0.547864 0.137235
b 0.346160 0.648808 0.290378 -0.598081
c 1.658532 1.114108 -1.595136 0.196397
d -0.760715 -0.186863 1.043977 0.287979
e 0.220411 -1.352767 0.924732 -0.456502
[42]
# 选择任意行,任意列
df.loc['a':'e','B':]
B C D
a -2.199736 0.547864 0.137235
b 0.648808 0.290378 -0.598081
c 1.114108 -1.595136 0.196397
d -0.186863 1.043977 0.287979
e -1.352767 0.924732 -0.456502
[43]
# 取出标签a中大于1的数据
df.loc['a']>1
A False
B False
C False
D False
Name: a, dtype: bool
[44]
df.loc[:,'A']>1
a False
b False
c True
d False
e False
f False
g False
h False
Name: A, dtype: bool
[49]
df.loc[:,df.loc['d']>1]
C
a 0.547864
b 0.290378
c -1.595136
d 1.043977
e 0.924732
f 0.900851
g -0.551237
h 0.162098
[50]
# iloc基于位置的索引,第1行数据
df.iloc[0]
A -0.629391
B -2.199736
C 0.547864
D 0.137235
Name: a, dtype: float64
[51]
df.iloc[1]
A 0.346160
B 0.648808
C 0.290378
D -0.598081
Name: b, dtype: float64
[55]
df.iloc[0:3,1:3]
B C
a -2.199736 0.547864
b 0.648808 0.290378
c 1.114108 -1.595136
[56]
# 取任意行和任意列
df.iloc[0:3,[1,3]]
B D
a -2.199736 0.137235
b 0.648808 -0.598081
c 1.114108 0.196397
[58]
# 快速获取数据
df.A
a -0.629391
b 0.346160
c 1.658532
d -0.760715
e 0.220411
f -1.952481
g -1.683863
h 0.083268
Name: A, dtype: float64
[-]