问题陈述 我想从这个基本上是热编码的数据帧开始.
In [2]: pd.DataFrame({"monkey":[0,1,0],"rabbit":[1,0,0],"fox":[0,0,1]})
Out[2]:
fox monkey rabbit
0 0 0 1
1 0 1 0
2 1 0 0
3 0 0 0
4 0 0 0
Run Code Online (Sandbox Code Playgroud)
对于这个"反向"单热编码的那个.
In [3]: pd.DataFrame({"animal":["monkey","rabbit","fox"]})
Out[3]:
animal
0 monkey
1 rabbit
2 fox
Run Code Online (Sandbox Code Playgroud)
我想有一些聪明的使用apply或zip来做这些但是我不确定怎么样......有人可以帮忙吗?
我没有成功使用索引等来尝试解决这个问题.
列名是:ID,1,2,3,4,5,6,7,8,9.
col值为0或1
我的数据框看起来像这样:
ID 1 2 3 4 5 6 7 8 9
1002 0 1 0 1 0 0 0 0 0
1003 0 0 0 0 0 0 0 0 0
1004 1 1 0 0 0 0 0 0 0
1005 0 0 0 0 1 0 0 0 0
1006 0 0 0 0 0 1 0 0 0
1007 1 0 1 0 0 0 0 0 0
1000 0 0 0 0 0 0 …Run Code Online (Sandbox Code Playgroud) 从具有数字和名义数据的数据框:
>>> from pandas import pd
>>> d = {'m': {0: 'M1', 1: 'M2', 2: 'M7', 3: 'M1', 4: 'M2', 5: 'M1'},
'qj': {0: 'q23', 1: 'q4', 2: 'q9', 3: 'q23', 4: 'q23', 5: 'q9'},
'Budget': {0: 39, 1: 15, 2: 13, 3: 53, 4: 82, 5: 70}}
>>> df = pd.DataFrame.from_dict(d)
>>> df
Budget m qj
0 39 M1 q23
1 15 M2 q4
2 13 M7 q9
3 53 M1 q23
4 82 M2 q23
5 70 M1 …Run Code Online (Sandbox Code Playgroud) 我想用虚拟变量反转数据框。例如,
来自 df_input:
Course_01 Course_02 Course_03
0 0 1
1 0 0
0 1 0
Run Code Online (Sandbox Code Playgroud)
到 df_output
Course
0 03
1 01
2 02
Run Code Online (Sandbox Code Playgroud)
我一直在查看Reconstruct a categorical variable from dummys in pandas提供的解决方案,但它没有用。请,任何帮助将不胜感激。
非常感谢,最好的问候,卡罗
因此,在下面的屏幕截图中,我们有3个不同的能源站点,即ID01,ID18和ID31。它们的格式为虚拟变量类型,出于可视化的目的,我只想创建一个我可以使用的名为“站点”的列。您会看到我快速创建的循环,但是似乎效率很低。关于如何以最快的方式实现这一目标的任何指示?
