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

将多个列追加到df,同时保留其他列值[重复]

濮阳原
2023-03-14

我有一个与一个标题和位置关联的多个作者的df:

title | location | author 1 | author 2 | author 3
---------------------------------------------------
A     |  US      |  jon smit| johnny   | brad
B     |  Asia    | Kenny lee| None     | None
C     |  Europe  | gutentag | bonjour  | None

我希望输出忽略任何None值,如下所示:

title | location | author   | 
-----------------------------
A     |  US      |  jon smit|
A     |  US      | johnny   | 
A     |  US      | brad     |
B     |  Asia    | Kenny lee| 
C     |  Europe  | gutentag | 
C     |  Europe  | bonjour  | 

任何帮助将不胜感激!

共有1个答案

通正平
2023-03-14

使用df.meltdf.replaceNone值替换为NaN,使用df.dropnaNaN值丢弃。

最后,使用df.sort_values对列title上的行进行排序

In [1414]: import numpy as np

In [1415]: x = df.melt(id_vars=['title', 'location'],  value_name='author')[['title', 'location', 'author']].replace('None', np.nan).dropna().sort_values('title')

In [1416]: x
Out[1416]: 
  title location     author
0     A       US   jon smit
3     A       US     johnny
6     A       US       brad
1     B     Asia  Kenny lee
2     C   Europe   gutentag
5     C   Europe    bonjour

或者:如果您的No值是Nonetype而不是字符串,则不需要替换

x = d.melt(id_vars=["title", "location"], value_name="author")[
    ["title", "location", "author"]
].dropna()
 类似资料:
  • 问题内容: 我在pandas数据框上使用来删除没有特定列的最小值的所有行。像这样: 但是,如果我不止这两列,其他列(例如在我的示例中)将被删除。我可以使用保留这些列,还是必须找到一种不同的方式删除行? 我的数据如下: 并应以如下形式结束: 但是我得到的是: 我一直在浏览文档,找不到任何东西。我试过了: 但是这些都不起作用(我在最后一个中意识到,语法是在创建组后进行聚合的)。 问题答案: 方法1:使

  • 我有下表和Postgres: 作为select查询的一部分,我希望能够基于最高的Col2值(每个Col1值永远不会有多个最高值)在Col1中删除重复项,并保留相应的Col2、Col3值。 期望输出:

  • 我试图做的是从列“in_reply_to_user_id”(不在图片中,因为df太宽,无法容纳)与给定id具有相同值的行中获取文本,并将文本附加到列表中,然后将其放入新列中。例如,所有tweet中的“in_reply_to_user_id”列等于第一条tweet的“id”的文本都应该放在一个列表中,然后添加到数据框中名为“reples”的新列中。以下是我尝试过的一些事情:

  • 问题内容: 我正在编写一个包含10个存储桶列表的简单哈希表。使用内置函数计算索引,然后对表大小取模。但是,当我尝试将对象附加到该索引的存储桶列表时,它会附加到每个存储桶列表。我尝试用不同的方式定义add_HT,但我一直得到相同的结果。我究竟做错了什么? 问题答案: 使指向 同一列表 的指针数量增加。这里不是问题。您需要定义为。

  • 我有以下问题: 包含带有字符串 、 或 C 的 。 带有的第二个 。 以及其他三列 、 和 (这些列也命名为 、 和 )。 因此 应获得 现在我想遍历每一行,并根据 中的条目将 中的整数分配给列 A、B 或 C。 如何实现此目的? < code>df.withColumn()我不能使用(或者至少我不知道为什么),对于< code>val df2 = df.map(x = 提前期待您的帮助和感谢!

  • 我有下面提到的表,我想通过查询添加列,这将增加一列到表的值对其他列特定值考虑以下表 在这个表中,在1前面想要文本作为活动,在零(0)前面,我想要它作为列名状态的非活动。