python - 获取列中唯一值的索引( Pandas )

标签 python pandas

我需要在 x 中获取具有唯一值的行号。我得出以下解决方案:

x = pv.index.get_level_values("Код") #get index level values
dups = x[x.duplicated()].unique() #get dup. values
uniques = x[~x.isin(dups)] #get not dup. values
uniques_indexes = np.where(x.isin(uniques))[0].tolist()

我觉得计算太多了。有没有更好的解决方案?

最佳答案

import pandas as pd
import numpy as np

np.random.seed(100)
index = np.random.choice('A B C D E F G'.split(), 10)
pv = pd.DataFrame(np.random.randn(10), index=index, columns=['value'])

Out[60]: 
    value
A -0.2347
A -1.4397
D  0.4328
A  2.3045
C -0.1226
G  0.0155
E  0.2660
C -0.1138
F  1.0111
C -1.4408

# reset_index first to preserve the line number
pv.reset_index(inplace=True)

Out[128]: 
  index   value
0     A -0.2347
1     A -1.4397
2     D  0.4328
3     A  2.3045
4     C -0.1226
5     G  0.0155
6     E  0.2660
7     C -0.1138
8     F  1.0111
9     C -1.4408

# replace your groupby index level
pv.sort_index().groupby('index').filter(lambda group: len(group) == 1)


Out[129]: 
  index   value
2     D  0.4328
5     G  0.0155
6     E  0.2660
8     F  1.0111

关于python - 获取列中唯一值的索引( Pandas ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31049111/

相关文章:

Python 命名空间包作为现有包的扩展

python - pandas系列的for循环性能

python - 如何获得每个半年日期的 2 年期限

python - 合并具有不同索引的两个数据帧

python - 为什么 numpy 函数在 pandas 系列/数据帧上这么慢?

python - FFT - 峰峰值、峰值、RMS

Python,尝试解析html以获取电子邮件地址

python - 推断 dtypes 时 Pandas 会改变值

python - 将函数应用于数据框列的最有效方法

python - 如何合并数据框和填充值