dataframe中取值
时间: 2023-09-09 15:08:15 浏览: 105
在 Pandas 中,可以使用 loc 和 iloc 方法从 DataFrame 中取值。
loc 方法用于基于标签(label)或布尔数组(boolean array)从 DataFrame 中选取行和列,可以通过行标签和列标签进行切片或选择具体的行列,例如:
```python
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}, index=['a', 'b', 'c'])
# 选取行为 'a',列为 'A' 和 'C' 的数据
print(df.loc['a', ['A', 'C']])
# 选取第 1 行和第 3 行,列为 'B' 和 'C' 的数据
print(df.loc[['a', 'c'], ['B', 'C']])
# 选取所有行,列为 'A' 的数据
print(df.loc[:, 'A'])
```
输出结果为:
```
A 1
C 7
Name: a, dtype: int64
B C
a 4 7
c 6 9
a 1
b 2
c 3
Name: A, dtype: int64
```
iloc 方法则用于基于行号和列号从 DataFrame 中选取行和列,与 loc 不同,iloc 是依据行号和列号来进行切片或选择具体的行列,例如:
```python
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
# 选取第 0 行,第 2 列的数据
print(df.iloc[0, 2])
# 选取第 0 行和第 2 行,第 1 列的数据
print(df.iloc[[0, 2], 1])
# 选取所有行,第 0 列的数据
print(df.iloc[:, 0])
```
输出结果为:
```
7
0 4
2 6
Name: B, dtype: int64
0 1
1 2
2 3
Name: A, dtype: int64
```
需要注意的是,使用 loc 或 iloc 方法时,行和列的切片方式不同,loc 是闭区间,而 iloc 是半开区间。例如选取第 0 行到第 1 行,第 0 列到第 1 列的数据,loc 方法应该写成 df.loc['a':'b', 'A':'B'],而 iloc 方法应该写成 df.iloc[0:2, 0:2]。
阅读全文