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

创建一个新列,该列是所有前面列的串联[重复]

富昕
2023-03-14

我想将熊猫数据框中的所有列连接起来,用空格分隔 (" ").有没有比df['新栏目']=df['a'] " " df['b']"...

a   b   c   combined
1   2   3   1 2 3
a   d   3   a d 3
p   0   k   p 0 k

共有3个答案

闾丘霖
2023-03-14

它将使最后一列成为所有值的列表,但您可以使用以下内容:

df['combined'] = df.apply(lambda x: x.tolist(), axis=1)

输出结果如下:

a   b   c   combined
1   2   3   [1,2,3]
a   d   3   [a,d,3]
p   0   k   [p,0,k]
嵇丰
2023-03-14

我不认为你这样做有什么不对,但另一种方式(也许更像pythonic?)是:

df['newcolumn'] = df[['a', 'b', 'c']].apply(lambda x: ' '.join(x), axis=1)

为了使其更适用于大型df:

df['newcolumn'] = df.iloc[:,0:3].apply(lambda x: ' '.join(x), axis=1) 

其中iloc中的0:3只是列索引[0,1,2]。可以通过选择适当的索引对任意选择的列执行此操作。

寿意远
2023-03-14

沿轴=1可以使用lambda

import pandas as pd
df = pd.DataFrame({'a':['1','a','p'], 
             'b':[2,'d',0],
             'c':[3,3,'k']})
df=df.astype(str)
df['combined']=df[df.columns].apply(lambda x: ' '.join(x), axis=1)
 类似资料:
  • 我的问题是如何创建一个新列,它是DPLYR中一些特定列(根据它们的名称选择)的总和。例如,使用iris dataset,我创建了一个名为Petal的新列,它是Petal.Length和Petal.Width的总和。

  • 考虑下面的数据集存储在熊猫数据文件<代码> DFX < /代码>: 我有一个函数是: 现在,我想在中创建一个新列,其中包含计算出的z值 查看其他SO示例,我尝试了几个变体,包括: 返回错误。正确的方法是什么?

  • 本文向大家介绍dart 创建一个新列表,包括了dart 创建一个新列表的使用技巧和注意事项,需要的朋友参考一下 示例 列表可以通过多种方式创建。 推荐的方法是使用List文字: 该List构造可以作为很好: 如果您喜欢更强的键入,还可以通过以下方式之一提供类型参数: 为了创建一个小的可增长列表,该列表为空或包含一些已知的初始值,首选文字形式。对于其他种类的列表,有专门的构造函数: 另请参阅关于集合

  • 这是在添加列后拍摄的快照,但它不包含一列所有值的总和 我试图在dataframe中添加一列,该列包含同一dataframe中一列的所有值之和。 wa_rating=(rating>3)/总ratings 请帮我找到wa_rating dataframe,它包含一个新列,并使用scala spark

  • 我有一个带有Person对象的数据库表。我的网络服务接收一个Person对象列表来更新这个Person表。我的应用程序现在包含两个列表: 我想遍历这些列表,并创建一个新列表,用于更新Person表。 fName和lName用于识别现有记录。下面是一个例子。 现在的 乔,布洛格斯,18岁,joe@me.com 简,布洛格斯,21岁,jane@me.com 弗洛,布洛格斯,25岁,flo@me.com

  • 当我看一个类似问题的答案时,如这个链接所示:pandas:以其他列的长度作为值添加列 我遇到了一个问题,它的解决方案是 抛出以下警告 我的问题是:如何做到这一点,以防止出现这种警告?在这个命令中,我希望在原始数据帧中添加一个新列,而不是创建一个片的某种副本。