让我们假设我有以下数据框:
x y
1 -1.808909 0.093380
2 1.733595 -0.380938
3 -1.385898 0.714071
我想在“y”之后的列中插入一个值。但是,我可能会插入多个值。
因此,我需要检查“y”后面的单元格是否为空,以避免覆盖该单元格。
因此,预期输出可能如下所示
x y
1 -1.808909 0.093380 5
2 1.733595 -0.380938 6 7
3 -1.385898 0.714071 8
与上面的输入相比,我需要首先检查单元格是否为空。
我想我可以用:x = df.iloc[1,:].last_valid_index()
但该方法返回的是“y”,而不是“y”的索引1。
稍后,我将使用该索引插入“5”:
x +=1
df.iloc[1,x] = 5
我想使用这种方法来查找最后一个非空单元格,因为输出中有第二行。您可以看到,如果我总是使用相同的方法,则需要插入“6”,然后插入“7”:
df.iloc[1,2] = 6
df.iloc[1,2] = 7
在插入“7”时会覆盖“6”
还有一件事,我不能使用类似:(df['y'].iloc[2]).index
的内容来查找该值,因为稍后我将有两个“y”列,因此,这可能会导致返回的索引号小于所需的索引号。
2条答案
按热度按时间wfsdck301#
很容易识别数字数组或 Dataframe 中每一行的第一个零的位置。让我们创建一个在某个位置后带有零的 Dataframe :
例如,下面的代码将给出数据框中值为0的所有位置
或者,您可以获得值不为零的位置:
我希望这会有帮助。
ne5o7dgx2#
我建议这是一个不那么复杂的解决方案
这样做的目的是洗牌“数字”列表,并过滤掉所有的零。然后,它打印第一个非零值