2017-08-09 16 views
0

需要一些帮助 - 我认为这不是太困难,但有一个心理障碍。 我试图将一列中的数据框转换为两列,并用逗号分隔。下面是我使用的代码:用逗号分隔两列数据框python

log_model2coeff_df = log_model2coeff_df['lol'].apply(lambda x :pd.Series(x.split(','))) 


+-----------------------------------------------+ 
|      lol      | 
+-----------------------------------------------+ 
| ('Principal', array([-0.00088419]))   | 
| ('age', array([ 0.01724407]))     | 
| ('Male', array([-0.31822202]))    | 
| ('High School or Below', array([-0.0003084])) | 
| ('Master or Above', array([ 0.02205005]))  | 
| ('college', array([ 0.10759677]))    | 
+-----------------------------------------------+ 

我希望它看起来像:

+---------------------------------------------------+ 
|  lol    |   lol2   |               
+---------------------------------------------------+ 
| ('college'    | array([ 0.10759677])) | 
| ('age'     | array([ 0.01724407])) | 
| ('Principal'   | array([-0.00088419])) | 
| ('Master or Above'  | array([ 0.02205005])) | 
| ('Male'     | array([-0.31822202])) | 
| ('High School or Below' | array([-0.0003084])) | 
+---------------------------------------------------- 


Thanks in advance 

回答

0

这是最简单的到分割的结果存储在一个中间变量。

split = df['lol'].str.split(',') 
df['lol'] = split.apply(lambda x: x[0]) 
df['lol2'] = split.apply(lambda x: x[1]) 
+0

嗨csander,感谢您的快速回复!但是,代码似乎给出了一个错误:TypeError:'float'对象不可订阅 – Tauseef

+0

您的列'lol'是否已经包含元组?我认为它有字符串,你分裂在逗号字符,但这不会真正有道理,因为你是从分裂获得对象,而不是字符串。 – csander