2017-07-19 202 views
0
data={'GradeCol':['BVCS,105308.248']} 

data1=DataFrame(data) 
print(data1) 
data1[['GradeColText','GradeColNum']] = pd.DataFrame([x for x in 
data1.GradeCol]) 

#data1[['GradeColText','GradeColNum']] = 
#pd.DataFrame(data1.GradeCol.values.tolist()) 
print(data1) 

而分裂成排柱越来越 错误 ValueError异常:列必须是相同的长度,关键拆分列分成多个列熊猫

预计输出

GradeColText GradeColNum 

BVCS   105308.248 

回答

1

试试这个?

data={'GradeCol':['BVCS,105308.248']} 
df=pd.DataFrame(data) 
df = pd.DataFrame(df.GradeCol.str.split(',', 1).tolist(), 
        columns=['GradeColText', 'GradeColNum']) 

    GradeColText GradeColNum 
0   BVCS 105308.248 
1

您可以使用df.str.rsplit(expand=True)

In [429]: df[['GradeColText', 'GradeColNum']] = df['GradeCol'].str.rsplit(',', expand=True) 

In [432]: df.drop(['GradeCol'], axis=1, inplace=True); df 
Out[432]: 
    GradeColText GradeColNum 
0   BVCS 105308.248 
+1

好答案+ 1〜 – Wen

+0

@Wen谢谢:) –