当前位置: 首页 > 面试题库 >

将多个列值合并到python pandas的一列中

赵雅懿
2023-03-14
问题内容

我有一个这样的熊猫数据框:

   Column1  Column2  Column3  Column4  Column5
 0    a        1        2        3        4
 1    a        3        4        5
 2    b        6        7        8
 3    c        7        7

我现在想做的是获取一个包含Column1和新columnA的新数据框。此columnA应该包含第2列-(to)n的所有值(其中n是从Column2到行尾的列数),如下所示:

  Column1  ColumnA
0   a      1,2,3,4
1   a      3,4,5
2   b      6,7,8
3   c      7,7

我如何最好地解决这个问题?任何意见将是有益的。提前致谢!


问题答案:

您可以按行调用applypass ,然后将dtype转换为和:axis=1``apply``str``join

In [153]:
df['ColumnA'] = df[df.columns[1:]].apply(
    lambda x: ','.join(x.dropna().astype(str)),
    axis=1
)
df

Out[153]:
  Column1  Column2  Column3  Column4  Column5  ColumnA
0       a        1        2        3        4  1,2,3,4
1       a        3        4        5      NaN    3,4,5
2       b        6        7        8      NaN    6,7,8
3       c        7        7      NaN      NaN      7,7

在这里,我呼吁dropna摆脱NaN,但是我们需要再次int强制转换为,这样我们才不会以float作为str结束。



 类似资料:
  • 问题内容: 我有一个带有用于发布的表的数据库,每个表可以有多个作者,这些作者存储在不同的表中。我想查询数据库,以便在第一列中提供出版物标题列表,在第二列中提供该出版物的合并作者。 当然,这使我多次获得了许多作者的出版物标题。 按ID分组后,每个标题给我一个作者: 我正在寻找的结果是这样的: 我认为应该在使用GROUP_CONCAT中找到答案,但是我唯一能得到的结果是所有作者的一个结果行: 在联接之

  • 我想合并火花中的多个数组类型[字符串类型]列以创建一个数组类型[字符串类型]。为了组合两列,我在这里找到了解决方案: 将Array[string]类型的两个spark sql列合并成一个新的Array[string]列 但是如果我不知道编译时的列数,我该如何进行组合呢?在运行时,我将知道所有要组合的列的名称。 一种选择是使用上面stackoverflow问题中定义的UDF,在循环中多次添加两列。但

  • 我想知道是否有可能将不同流中的数据合并成一个流。通过合并,我的意思是将其添加到单独的列中,而不是添加到现有的列中。 到目前为止,我已经能够将数据收集到单独的地图中,如下面的示例所示。我认为我应该把这些地图合并成一张,但不确定如何去做,或者我是否做错了什么。 我做了一些搜索,在FlatMap、Concat等网站上找到了一些线索,但因为我对这条流还不熟悉 例如:列出数据-1

  • 我有这些数据 我想把它变成 < li >我想将列名用作< code>category列的值标签。 < li >每行最多只有一个< code>True值。 这就是MWE 我可以做 。但是,熊猫自己的工具不是有更优雅的方式吗?

  • 我有一个熊猫DF如下,我正在努力打印一个好看的格式。。。有人能告诉我如何从同一列值中组合这两个值吗? 我希望打印的

  • 在PostgreSQL中,我想使用SQL语句合并两列并从中创建一个新列。 我正在考虑使用concat(…) ,但有更好的方法吗<最好的方法是什么?