pandas 根据行索引和列索引取值,如果没有索引,不报错
时间: 2023-07-07 08:44:29 浏览: 105
如果想要在没有索引的情况下取值,不报错,可以使用 `iloc` 方法。`iloc` 可以使用行和列的位置来进行数据的选取,不需要索引。例如:
```python
import pandas as pd
# 创建一个没有索引的 DataFrame
df = pd.DataFrame([[1, 2], [3, 4]])
# 使用 iloc 方法根据位置取值
value = df.iloc[0, 1]
print(value) # 2
```
在上面的例子中,我们使用 `iloc` 方法来获取第 0 行、第 1 列的值,这里的行和列都是根据位置来选取的,而不是根据索引。因此,即使 DataFrame 没有索引,也不会报错。
相关问题
pandas 根据行索引和列索引取值,如果没有索引,现实None
如果没有索引,使用 `loc` 或 `iloc` 方法取值时,会抛出 `KeyError` 异常。如果希望在没有索引的情况下,返回 None,可以使用 `at` 或 `iat` 方法,它们会返回 None。例如:
```python
import pandas as pd
# 创建一个没有索引的 DataFrame
df = pd.DataFrame([[1, 2], [3, 4]])
# 使用 loc 方法会抛出 KeyError 异常
try:
value = df.loc[0, 1]
except KeyError:
print('KeyError')
# 使用 at 方法会返回 None
value = df.at[0, 1]
print(value) # None
```
pandas 根据行索引和列索引取值,若索引无该数值,也不报错
如果想要在根据行索引和列索引取值时,即使索引中没有该数值也不报错,可以使用 `DataFrame.at` 或 `DataFrame.iat` 方法。这两个方法分别用于根据行标签和列标签、行位置和列位置来选取元素。如果指定的行标签和列标签、行位置和列位置不存在,则不会报错,而是返回 `None`。例如:
```python
import pandas as pd
# 创建一个 DataFrame
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
# 使用 at 方法根据行标签和列标签取值
value1 = df.at[1, 'B']
print(value1) # 5
value2 = df.at[1, 'D']
print(value2) # None
# 使用 iat 方法根据行位置和列位置取值
value3 = df.iat[1, 1]
print(value3) # 5
value4 = df.iat[1, 3]
print(value4) # None
```
在上面的例子中,我们使用了 `at` 方法和 `iat` 方法来根据行标签和列标签、行位置和列位置来选取元素。如果指定的行标签和列标签、行位置和列位置不存在,则会返回 `None` 。
需要注意的是,如果使用 `loc` 或 `iloc` 方法来根据索引取值,如果索引不存在,会报错。因此,在这种情况下,只能先判断索引是否存在,再根据索引取值,否则会报错。
阅读全文