我有一个与一个标题和位置关联的多个作者的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 |
任何帮助将不胜感激!
使用df.melt
和df.replace
将None
值替换为NaN
,使用df.dropna
将NaN
值丢弃。
最后,使用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)前面,我想要它作为列名状态的非活动。