##### DataFrame 索引与切片
```python
import pandas as pd
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Emily'],
'Age': [25, 30, 22, 28, 35],
'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Boston']
}
df = pd.DataFrame(data, index=['a','b','c','d','e'])
# Name Age City
# 0 Alice 25 New York
# 1 Bob 30 Los Angeles
# 2 Charlie 22 Chicago
# 3 David 28 Houston
# 4 Emily 35 Boston
```
##### DataFrame 索引
```python
# 行索引
DataFrame.loc[label]
# DataFrame.loc['行标签'] 返回 Series 一行
print(df.loc['a'])
# DataFrame.loc['行标签','列标签']
print(df.loc['a','Name'])
# DataFrame.loc[['行标签', '行标签'],
# ['列标签', '列标签']]
print(df.loc[['a','b'],['Name','Age']])
DataFrame.iloc[position]
# 同上
# 列索引
DataFrame[label]
# DataFrame['行标签']
print(df['Name'])
# DataFrame[['行标签', '行标签', '行标签']] # 返回 DataFrame 多列
print(df[['Name','Age']])
# DataFrame['行标签']['列标签']
print(df['Name']['a'])
# 使用DataFrame['列标签']=value,添加新数据列
```
##### DataFrame 切片
```python
# 按行切片
DataFrame.loc[]
print(df.loc['a':'c']) # a-c行,所有字段
print(df.loc['a':'c','Name']) # a-c行,Name字段
print(df.loc['a':'c','Name':'City']) # a-c行,Name-City字段
DataFrame.iloc[]
# 同上
DataFrame[]
print(df['Name']['a':'c']) # a-c行,Name字段
```
##### 示例
```python
df = pd.DataFrame({
'one': pd.Series([1,2,3], index=['a','b','c']),
'two': pd.Series([1,2,3,4], index=['a','b','c','d'])
})
'''
one two
a 1.0 1
b 2.0 2
c 3.0 3
d NaN 4
'''
df['one'] # one 列
df[['one','two']] # one,two 列
df['one']['c'] # one 列 c 行
df['one'][2] # one 列 2 行
df.loc['a'] # a 行
df.loc[['a','b']] # a b 行
df.loc['a', 'one'] # a 行 one 列
df.iloc[0] # 第 0 行
df.iloc[[0, 1]] # 第 0 1 行
df.iloc[0, 0] # 第 0 行 0 列
```