当前位置: 首页 > 知识库问答 >
问题:

将一列数据分成三列

欧博简
2023-03-14

我在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个答案

终洛华
2023-03-14
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

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

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

s_ = s.iloc[:s.shape[0] // 3 * 3]
df = pd.DataFrame(s_.values.reshape(-1, 3), columns=['First Name', 'Last Name', 'Job Title'])

df
牧梓
2023-03-14

您可以使用此表示法获得具有不同起点的每三个元素。

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
 类似资料:
  • 我试图将一个数据列表一分为二,但我不知道如何正确执行。 当我使用dput(a)时,我的数据如下 结构(列表)(V1=结构(c(1L、9L、10L、11L、12L、13L、14L、15L、16L、2L、3L、4L、5L、6L、7L、8L)。标签=c(“1\t1200.30”,“10\t1305.80”,“11\t1263.02”,“12\t1312.67”,“13\t1229.85”,“14\t12

  • 我有一些数据,其中每个id由不同的类型测量,这些类型可以有不同的值。测量值为val。一个小的虚拟数据如下所示: 那么df是: 我需要传播/投射数据,以便每个id的

  • 是否有可能在火花中将多个列爆炸成一个新列?我有一个如下所示的数据框: 期望输出: 到目前为止,我尝试过: 这不起作用。非常感谢您的任何建议。

  • 问题内容: 将列表基于任意数量的索引分成多个部分的最佳方法是什么?例如给出下面的代码 返回这样的东西 如果没有索引,则应返回整个列表。 问题答案: 这是我能想到的最简单,最pythonic的解决方案: 如果输入很大,则迭代器解决方案应该更方便: 当然,这是一个非常懒惰的家伙解决方案(如果您不介意获取数组而不是列表,但是无论如何,您始终可以将它们还原为列表):

  • 问题内容: 我的SQL很生锈。我正在尝试转换此表: 进入此表: 我写了这个查询: 产生: 我知道我可以选择所需的列,但SIN列不完整。我似乎记得我应该第三次加入表以获得完整的SIN列,但是我不记得怎么做。 如何生成目标表(ID,SIN,PHONE,EMAIL)? 编辑和澄清:到目前为止,我非常感谢我收到的答案,但是作为SQL新手,我不熟悉您所使用的技术(条件语句,条件聚合和数据透视)。使用JOIN

  • 我有一个列,其中包含该列的名称和值,格式如下: 我不想使用上面的设置,而是希望按以下格式排列列: 问题是这些值在整个列中并不一致,有时我会有这些值的组合,有时没有,有时只有一个,但顺序如何并不重要,所有这些列都必须创建。怎样才能用一种通用的方式调用它们,而不用像这样指定值: