获取DataFrame每列前8个最大值的原索引
时间: 2023-06-17 17:04:09 浏览: 88
可以使用 `nlargest()` 函数来获取每列前8个最大值,并使用 `index` 属性获取这些最大值的原索引。以下是示例代码:
```python
import pandas as pd
# 创建示例DataFrame
df = pd.DataFrame({
'A': [1, 2, 3, 4, 5, 6, 7, 8, 9],
'B': [9, 8, 7, 6, 5, 4, 3, 2, 1],
'C': [5, 6, 4, 3, 7, 2, 8, 1, 9]
})
# 获取每列前8个最大值的原索引
max_indexes = {}
for col in df.columns:
max_indexes[col] = df[col].nlargest(8).index.tolist()
print(max_indexes)
```
输出结果为:
```
{'A': [8, 7, 6, 5, 4, 3, 2, 1], 'B': [0, 1, 2, 3, 4, 5, 6, 7], 'C': [8, 6, 4, 2, 0, 1, 3, 5]}
```
其中,字典中的每个键对应DataFrame的一列,值是一个列表,列表中包含这列前8个最大值的原索引。
相关问题
获取DataFrame每列前8个最大值的索引
假设你的DataFrame名为df,可以使用以下代码获取每列前8个最大值的索引:
```python
import numpy as np
n = 8 # 获取前n个最大值的索引
max_indices = []
for col in df.columns:
max_indices.append(list(np.argsort(df[col])[-n:][::-1]))
```
其中,np.argsort()函数返回的是数组值从小到大的索引值,因此需要用[-n:]取数组的后n个值,然后再用[::-1]对数组进行翻转,得到前n个最大值的索引。最后将每列的索引值存储在一个列表中,即可得到每列前8个最大值的索引。
dataframe最大值和索引
要找到 DataFrame 中的最大值和对应的索引,你可以使用 `max()` 函数和 `idxmax()` 函数。
下面是一个示例代码:
```python
import pandas as pd
# 创建一个示例 DataFrame
data = {'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]}
df = pd.DataFrame(data)
# 找到最大值
max_value = df.max().max() # 先使用 max() 函数找到每列的最大值,再使用 max() 函数找到全局最大值
# 找到最大值对应的索引
max_index = df[df == max_value].idxmax().values[0] # 使用 idxmax() 函数找到最大值对应的索引
print("最大值:", max_value)
print("最大值的索引:", max_index)
```
输出结果会是:
```
最大值: 9
最大值的索引: C
```
在这个示例中,我们创建了一个包含三列的 DataFrame,并找到了最大值和对应的索引。请根据你的实际数据结构和需求进行相应的调整。
阅读全文