python - 如何从 Pandas 数据框中反转虚拟变量

标签 python pandas dataframe

我想用虚拟变量反转数据框。例如,

来自 df_input:

Course_01 Course_02 Course_03 
  0           0         1 
  1           0         0 
  0           1         0 

到 df_output

   Course
0 03
1 01
2 02

我一直在查看 Reconstruct a categorical variable from dummies in pandas 提供的解决方案但它没有用。请,任何帮助将不胜感激。

非常感谢, 此致, 卡罗

最佳答案

我们可以使用wide_to_long,然后选择不等于零的行,即

ndf = pd.wide_to_long(df, stubnames='T_', i='id',j='T')

      T_
id  T     
id1 30   0
id2 30   1
id1 40   1
id2 40   0

not_dummy = ndf[ndf['T_'].ne(0)].reset_index().drop('T_',1)

   id   T
0  id2  30
1  id1  40

根据您的修改进行更新:

ndf = pd.wide_to_long(df.reset_index(), stubnames='T_',i='index',j='T')

not_dummy = ndf[ndf['T_'].ne(0)].reset_index(level='T').drop('T_',1)

        T
index    
1      30
0      40

关于python - 如何从 Pandas 数据框中反转虚拟变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47694550/

相关文章:

python - pandas 数据框中的 If/Else 流控制

python - Python argparse 中的手动命令规范

Python - 减少大型 CSV 文件的导入和解析时间

python - 比较两个 Pandas 数据帧行的最快方法?

python - 时间序列数据的 Django 数据库结构?

python - Pandas 字符串按可变长度位置过滤

Python数据框上的数据计算

python - 为什么有时需要导入 module1.module2 有时不需要?

python - 德语词性标注

pandas - 您可以附加到 .feather 格式吗?