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

缺少数据,在Pandas中插入行并用NAN填充

凤财
2023-03-14
问题内容

我是Python和Pandas的新手,所以可能有一个我看不到的简单解决方案。

我有一些看起来像这样的不连续数据集:

ind A    B  C  
0   0.0  1  3  
1   0.5  4  2  
2   1.0  6  1  
3   3.5  2  0  
4   4.0  4  5  
5   4.5  3  3

我现在正在寻找一种解决方案,以实现以下目标:

ind A    B  C  
0   0.0  1  3  
1   0.5  4  2  
2   1.0  6  1  
3   1.5  NAN NAN  
4   2.0  NAN NAN  
5   2.5  NAN NAN  
6   3.0  NAN NAN  
7   3.5  2  0  
8   4.0  4  5  
9   4.5  3  3

问题是,A中的间隙因数据集的位置和长度而异…


问题答案:

set_indexreset_index是你的朋友。

df = DataFrame({"A":[0,0.5,1.0,3.5,4.0,4.5], "B":[1,4,6,2,4,3], "C":[3,2,1,0,5,3]})

首先将A列移至索引:

In [64]: df.set_index("A")
Out[64]: 
     B  C
 A        
0.0  1  3
0.5  4  2
1.0  6  1
3.5  2  0
4.0  4  5
4.5  3  3

然后使用新索引重新索引,此处使用nans填充缺少的数据。我们使用Index对象是因为我们可以命名它。这将在下一步中使用。

In [66]: new_index = Index(arange(0,5,0.5), name="A")
In [67]: df.set_index("A").reindex(new_index)
Out[67]: 
      B   C
0.0   1   3
0.5   4   2
1.0   6   1
1.5 NaN NaN
2.0 NaN NaN
2.5 NaN NaN
3.0 NaN NaN
3.5   2   0
4.0   4   5
4.5   3   3

最后使用将索引移回列reset_index。自从我们命名索引以来,所有这些都神奇地起作用:

In [69]: df.set_index("A").reindex(new_index).reset_index()
Out[69]: 
       A   B   C
0    0.0   1   3
1    0.5   4   2
2    1.0   6   1
3    1.5 NaN NaN
4    2.0 NaN NaN
5    2.5 NaN NaN
6    3.0 NaN NaN
7    3.5   2   0
8    4.0   4   5
9    4.5   3   3


 类似资料:
  • 问题内容: 我的数据如下所示: 当我尝试打电话时,我会全部收回。我在excel中进行了测试,确实可以计算出相关性。 知道为什么会这样吗? 我很乐意发布更多信息,但不确定会有所帮助。 问题答案: 杰森(Jason),使用示例数据对我来说很好用。 我在您的data.info()中注意到dtype上贴有’None’。当我加载样本数据时,我得到 我想象是什么原因导致“无”导致您的问题。 希望这可以帮助[希

  • 我有一个页面来显示一个从PHPmyAdmin数据库中提取信息的表,但是最新的数据行似乎总是丢失的,尽管表中有一行数据(只是空的)。如果我添加另一行,它会使前面的缺失行出现,但最新的一个是空的-非常恼人,我只是不明白为什么会发生这种情况! 查询以拉取信息: 显示表: CSS(不确定这是否会影响它)

  • 我正在使用Envers来审核表,但它正在为未知/不存在的表创建一些审核表。它看起来像多对一关系的多对多关系审计表。 这是对的吗?如果是,为什么? 但当我尝试删除和HorarioFixo时,我遇到了一个错误。 我收到的错误: 这是SQL重复: 所有这些都是代码的一部分。如果你需要更多,请留下评论。 我的班级: 我的映射: 新罕布什尔州和恩维尔斯配置:

  • 问题内容: 天哪,它必须是如此简单,但我正在为“填写缺失的数据”问题而苦苦挣扎。 我有一个表,该表具有以下带有一些插入数据的列。 我想要的这张表是从2014年起的全部月份的付款值。 我尝试在select中使用IFNULL,但失败如此严重…而且stackoverflow的搜索结果通常会结合两个或多个表来处理信息。解决这个问题的最快,最好的解决方案是什么? 问题答案: 对于缺少的月份,您可以对所有月份

  • 问题内容: 我有一个带有两列“标识符”,“值”和“子标识”的以下数据框 df : 我有一个索引列表,例如 我想在列表x中提到的索引之前插入行。就像,对于在索引2之前插入的行,将具有以下值,它将具有 与 在索引2处的行 相同的标识符 ,即1; 与 索引2的行 相同的值 ,即103;但是新行中的 subid 将是((索引2处的subid)-1),或者仅仅是前一行的subid,即1。 以下是我期望的最终

  • 第一行是2023-9-5的数据,在2023-9-6插入一行数据