2017-06-08 16 views

答えて

0

あなたはapplylistconcatを使用することができます。

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 

EDIT:

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] 
+0

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

+0

最後の編集を確認してください。 – jezrael

+0

私の答えが役に立つなら、[accept](http://meta.stackexchange.com/a/5235/295067)を忘れないでください。ありがとう。 – jezrael

関連する問題