python怎样在一个series中寻找值为true对应的下表名称
时间: 2023-01-29 18:41:03 浏览: 95
你可以使用 pandas 库中的 `Series.idxmax()` 或 `Series.idxmin()` 方法来获取为 `True` 的值对应的索引名称。
例如:
```
import pandas as pd
s = pd.Series([True, False, True], index=['a', 'b', 'c'])
print(s)
# a True
# b False
# c True
# dtype: bool
print(s.idxmax()) # 输出 'a'
print(s.idxmin()) # 输出 'b'
```
如果希望获取所有为 `True` 的值的索引名称,可以使用如下代码:
```
print(s[s].index) # 输出 Index(['a', 'c'], dtype='object')
```
相关问题
Python中series如何筛选
在Python中,Series是pandas库中的一种数据结构,它是一维标记数组,类似于带有标签的数组或字典。要筛选Series中的数据,可以使用布尔索引或条件筛选。
1. 布尔索引筛选:可以通过创建一个布尔数组来筛选Series中的数据,其中布尔数组的长度与Series相同,对应位置为True的数据会被保留,False的数据会被过滤掉。例如:
```python
import pandas as pd
# 创建一个Series
s = pd.Series([1, 2, 3, 4, 5])
# 使用布尔索引筛选大于3的数据
filtered_s = s[s > 3]
print(filtered_s)
```
输出结果为:
```
3 4
4 5
dtype: int64
```
2. 条件筛选:可以使用条件表达式来筛选Series中的数据。例如:
```python
import pandas as pd
# 创建一个Series
s = pd.Series([1, 2, 3, 4, 5])
# 使用条件筛选大于3的数据
filtered_s = s[s > 3]
print(filtered_s)
```
输出结果为:
```
3 4
4 5
dtype: int64
```
以上是筛选Series中数据的两种常见方法。你可以根据具体需求选择适合的方法进行筛选。
返回series bool值中为true的索引
你可以使用 `pandas.Series` 的 `index` 属性和布尔索引来实现。例如,假设你的 `Series` 名称为 `s`,你可以使用以下代码返回 `s` 中为 `True` 的索引:
```python
s[s == True].index
```
其中,`s == True` 返回一个布尔类型的 `Series`,其中为 `True` 的位置表示 `s` 中对应位置为 `True`。然后,我们使用布尔索引的方式提取 `s` 中为 `True` 的值,最后再通过 `index` 属性返回它们的索引。
阅读全文