welcome to my blog
df.loc是通过名字访问行或者列
df.iloc是通过索引访问行或者列, 所以df.iloc只能跟整数
举个例子
import numpy as np
import pandas as pd
s = pd.Series(data=np.nan, index=[49, 48, 47, 46, 45, 1, 2, 3, 4, 5])
s
'''
49 NaN
48 NaN
47 NaN
46 NaN
45 NaN
1 NaN
2 NaN
3 NaN
4 NaN
5 NaN
dtype: float64
'''
#s.iloc[:3]返回前三行, 因为iloc是通过索引访问行或者列的
s.loc[:3]
'''
49 NaN
48 NaN
47 NaN
dtype: float64
'''
#s.loc[:3]返回前8行, 因为loc是通过名字访问行或者列的
s.iloc[:3]
'''
49 NaN
48 NaN
47 NaN
46 NaN
45 NaN
1 NaN
2 NaN
3 NaN
dtype: float64
'''
进阶的例子
import numpy as np
import pandas as pd
df = pd.DataFrame(data=np.nan, index=list('abcde'), columns=['x', 'y', 'z', 8, 9])
'''
x y z 8 9
a NaN NaN NaN NaN NaN
b NaN NaN NaN NaN NaN
c NaN NaN NaN NaN NaN
d NaN NaN NaN NaN NaN
e NaN NaN NaN NaN NaN
'''
# 获取c那一行的前四列
print(df.iloc[:df.index.get_loc('c') + 1, :4])
'''
x y z 8
a NaN NaN NaN NaN
b NaN NaN NaN NaN
c NaN NaN NaN NaN
'''
参考