Python Pandas Dataframe单元格值拆分

时间:2017-06-08 10:14:48

标签: pandas

我迷失了如何拆分二进制值,使得每个(0,1)值占据数据帧的一列。 from jupyter

1 个答案:

答案 0 :(得分:0)

您可以将concatapply list

一起使用
df = pd.DataFrame({0:[1,2,3], 1:['1010','1100','0101']})
print (df)
   0     1
0  1  1010
1  2  1100
2  3  0101

df = pd.concat([df[0], 
                df[1].apply(lambda x: pd.Series(list(x))).astype(int)],
                axis=1, ignore_index=True)
print (df)

   0  1  2  3  4
0  1  1  0  1  0
1  2  1  1  0  0
2  3  0  1  0  1

DataFrame构造函数的另一个解决方案:

df = pd.concat([df[0], 
                pd.DataFrame(df[1].apply(list).values.tolist()).astype(int)], 
                axis=1, ignore_index=True)
print (df)

   0  1  2  3  4
0  1  1  0  1  0
1  2  1  1  0  0
2  3  0  1  0  1

编辑:

df = pd.DataFrame({0:['1010','1100','0101']}) 

df1 = pd.DataFrame(df[0].apply(list).values.tolist()).astype(int)
print (df1)
   0  1  2  3
0  1  0  1  0
1  1  1  0  0
2  0  1  0  1

但如果需要清单:

df[0] = df[0].apply(lambda x: [int(y) for y in list(x)])
print (df)
              0
0  [1, 0, 1, 0]
1  [1, 1, 0, 0]
2  [0, 1, 0, 1]