从R到Python的过渡:我的级别到哪里去了?

从R到Python的过渡:我的级别到哪里去了?,python,pandas,Python,Pandas,如果我有这样一个数据帧 df = pd.DataFrame({'labels': ['A', 'B', 'C'], 'moreLabels': ['D','E','F'], 'numbers': [1,2,3] }) 我想找出“moreLabels”的所有可能值,有没有简单的方法?我正在透视并列出透视表的列,如下所示: pivot = df.pivot_table(values = 'numbers', index = 'labels', columns = 'moreLabels' li

如果我有这样一个数据帧

df = pd.DataFrame({'labels': ['A', 'B', 'C'], 'moreLabels': ['D','E','F'], 
'numbers': [1,2,3] })
我想找出“moreLabels”的所有可能值,有没有简单的方法?我正在透视并列出透视表的列,如下所示:

pivot = df.pivot_table(values = 'numbers', index = 'labels', 
columns = 'moreLabels'
list(pivot.columns)
,但这需要几个步骤,我希望有一个整洁的方法来这样做

dataframe[column].levels()
R的
levels()
函数将列出变量的所有可能值,即使这些值不在数据框中。熊猫不是这样的

> df <- data.table(moreLabels = c('D', 'E', 'F'), numbers = c(1, 2, 3))
> df[, moreLabels := as.factor(moreLabels)]
> df[, levels(moreLabels)]
[1] "D" "E" "F"

> df[numbers > 1, ]  # if we subset, we only see values "E" and "F"
   moreLabels numbers
1:          E       2
2:          F       3

> df[numbers > 1, levels(moreLabels)]
[1] "D" "E" "F"  # even though we would expect only "E" and "F"
R的
levels()
函数将列出变量的所有可能值,即使这些值不在数据框中。熊猫不是这样的

> df <- data.table(moreLabels = c('D', 'E', 'F'), numbers = c(1, 2, 3))
> df[, moreLabels := as.factor(moreLabels)]
> df[, levels(moreLabels)]
[1] "D" "E" "F"

> df[numbers > 1, ]  # if we subset, we only see values "E" and "F"
   moreLabels numbers
1:          E       2
2:          F       3

> df[numbers > 1, levels(moreLabels)]
[1] "D" "E" "F"  # even though we would expect only "E" and "F"

为了获得良好的响应,请进行编辑以生成示例Python没有精确的等效项,因为R在级别调用中列出了因子变量的标签。我想你是在寻找
.unique()
。你是在寻找唯一的值,还是只寻找该列中的所有值?@3novak没有找到你的评论-你应该作为答案发布!为了获得良好的响应,请进行编辑以生成示例Python没有精确的等效项,因为R在级别调用中列出了因子变量的标签。我想你是在寻找
.unique()
。你是在寻找唯一的值,还是只寻找该列中的所有值?@3novak没有找到你的评论-你应该作为答案发布!