熊猫2列数据框分类行

时间:2019-11-21 19:38:32

标签: pandas numpy dataframe

我有一个包含两个列,值和类别的数据框。我需要将数据框转换为每个值一行,对于与值相关的类别,该值应为1或0。

因此,此:

+--------+--------------+
| value  |   category   |
+--------+--------------+ 
|   1    |      32      |
|   1    |      33      |
|   1    |      34      |
|   1    |      35      |
|   2    |      32      |
|  ...   |      ...     |
+--------+--------------+

对此:

+--------+----+----+----+----+
| value  | 32 | 33 | 34 | 35 |
+--------+----+----+----+----+
|   1    |  1 |  1 |  1 |  1 |
|   2    |  1 |  0 |  0 |  0 |
+--------+----+----+----+----+

我试图通过使用嵌套循环来解决这个问题,但是它太慢了。有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

这应该可行,接受@ALollz的建议并重置索引。

import pandas as pd
raw_data = {'value':      [1, 1, 1, 2, 2],
            'category':     [32, 33, 34, 35, 36]}

df = pd.DataFrame(raw_data)
df = pd.crosstab(df.value, df.category).clip(upper=1)
df.reset_index(drop=True)