我有一本下面这样的字典
{'A': 0, 'C': 0, 'B': 1, 'E': 3, 'D': 1, 'G': 0, 'F': 0, 'I': 3, 'H': 3, 'J': 1}
我想用这个字典创建一个熊猫数据框,如下所示
A B C D E F G H I J
0 1 0 1 0 0 1 1 0 0 0
1 0 1 0 1 0 0 0 0 0 1
2 0 0 0 0 0 0 0 0 0 0
3 0 0 0 0 1 0 0 1 1 0
上面字典的键-值对表示列名-索引使用这个值我想创建一个如上所述的数据帧。
例如'A': 0
表示第0个索引值处的列A应该是一个类似的'E': 3,
表示第3个索引值处的列E应该是一个
到目前为止我试过这个
df=pd.DataFrame(index=range(max(my_dic.values())),columns=[req_cols])
for u,v in my_dic.items():
df.at[v,u]=1
print df.fillna(0)
上面的代码工作得很好,但我认为这不是解决这个问题的有效方法。有没有更好的有效方法来解决这个问题
任何帮助都是值得赞赏的
提前谢谢
这里有一个简单的解决方案,但不一定是最快的。更快的解决方案可以使用更快的
one_at_index
函数numpy
可能提供更快的方法如果列顺序对您很重要,只需添加
columns=list("ABCDEFGHIJ")
或等效于pd.DataFrame
调用sklearn
库提供了一个没有显式循环的解决方案相关问题 更多 >
编程相关推荐