将数据从一列分成三列

时间:2016-08-04 22:41:18

标签: python pandas

我在Excel中有一个列,其中包含名字,姓氏和职位的混合。只有可以观察到的模式是 - 在每组3行中,每第1行是第一个名字,第2行是姓,第3行是职称。我想创建3个不同的列,并隔离这些数据 样本数据:

John
Bush
Manager
Katrina
Cohn
Secretary 

我想要:约翰,布什,经理分别在名字,姓氏和职位名下分三个不同的栏目。喜欢 -

First Name   Last Name    Job Title
John         Bush         Manager
Katrina      Cohn         Secretary 

我们如何才能完成这项任务?

2 个答案:

答案 0 :(得分:3)

您可以使用this notation获取具有不同起点的每个第三个元素。

l = ['John', 'Bush', 'Manager', 'Katrina', 'Cohn', 'Secretary']

pd.DataFrame({'First Name': l[::3], 'Last Name': l[1::3], 'Job Title': l[2::3]})

输出

  First Name  Job Title Last Name
0       John    Manager      Bush
1    Katrina  Secretary      Cohn

答案 1 :(得分:0)

val  df_ds = sqlContext.sql("SELECT Name, node.type from ds")

enter image description here

如果您的数据长度不是3的倍数,那么您可以像这样强制它:

s = pd.Series([
        'John',
        'Bush',
        'Manager',
        'Katrina',
        'Cohn',
        'Secretary'])

df = pd.DataFrame(s.values.reshape(-1, 3),
                  columns=['First Name', 'Last Name', 'Job Title'])

df

enter image description here