在列中分割多个值

时间:2019-03-22 18:41:38

标签: python-3.x pandas

我想用单独的标题在3个不同的列中获取col1的值。

      Date/Time                      col1
0     2019/03/20 10:00:09     212.0/212.0/212.0

到目前为止,我尝试过

import pandas as pd        
data1 = pd.read_csv('file1.csv')
s= pd.Series(data1['col1'])    
s.str.split(pat = '/', expand=True)

       0        1       2
0     212.0   212.0   212.0

现在,我该如何放置标头并将其累积到data1中。

1 个答案:

答案 0 :(得分:1)

假设s是输出中显示的数据框,则可以merge将此数据框改成原始的data1,然后使用df.rename重命名列:

data1.merge(s, left_index=True, right_index=True).rename({0: 'colA', 1: 'colB', 2: 'colC'}, axis=1)

    Datetime            col1                colA    colB    colC
0   2019/03/20 10:00:09 212.0/212.0/212.0   212.0   212.0   212.0
1   2019/03/20 10:30:09 222.0/222.0/222.0   222.0   222.0   222.0
2   2019/03/20 11:00:09 232.0/232.0/232.0   232.0   232.0   232.0

或者如果您有原始数据帧data1,则可以一步完成此操作:

data1[['colA','colB','colC']] = data1.col1.str.split('/', expand=True)

    Datetime            col1                colA    colB    colC
0   2019/03/20 10:00:09 212.0/212.0/212.0   212.0   212.0   212.0
1   2019/03/20 10:30:09 222.0/222.0/222.0   222.0   222.0   222.0
2   2019/03/20 11:00:09 232.0/232.0/232.0   232.0   232.0   232.0