【发布时间】:2014-08-13 23:16:47
【问题描述】:
我有一堆分类数据,它们在我的每一行中作为字符串(string string string 等)连接在一起。我需要将这些分类数据分成几列,这样我就有了如下所示的内容:
var1 var2 var3
row 1: 1 1 0
row 2: 0 0 1
row 3: 0 1 1 ....
分类数据可以这样生成:
import pandas as pd, numpy as np
np.random.seed(75)
a = [" ".join(np.unique(['var%d'%np.random.randint(5) for i in range(np.random.randint(10))])) for i in range(np.random.randint(10))]
a[0] = np.nan
b = pd.DataFrame(a, columns=['descriptor'])
print(b)
看起来像这样:
descriptor
0 NaN
1 var0 var1
2 var0 var1 var2 var3
3 var0 var2 var4
4 var0 var4
5 var3
6 var0 var1 var2 var3 var4
7 var0 var1 var2
我想构建以下内容
var0 var1 var2 var3 vars4
0 0 0 0 0 0
1 1 1 0 0 0
2 1 1 1 1 0
3 1 0 1 0 1
4 1 0 0 0 1
5 0 0 0 1 0
6 1 1 1 1 1
7 1 1 1 0 0
但我不确定如何处理这个问题。 DataFrame 相当大(25,000 行,5000 个描述符),因此该方法必须是高性能的。我尝试使用str.split(' ').tolist(),但我不确定如何将其转换为最终产品。
【问题讨论】: