【发布时间】:2018-04-24 11:50:09
【问题描述】:
我的数据每行中的最后 2 个实数测量有误。我想用 np.NAN 替换它们。实数的数量因行而异(即,每一行已经有一些不同数量的 NAN)。列标题表示测量编号,索引是实验性试验。单元格中的值等于测量读数。一些试验的测量读数比其他试验多;因此,一些行的 NAN 比其他的多。下面的代码创建了一个类似于我的数据框。
import pandas as pd
import numpy as np
data = np.array(([1,2,3,4,5,2,np.NaN],
[2,2,3,2,3,np.NaN,np.NaN],[4,4,5,1,np.NaN,np.NaN,np.nan]))
df1 = pd.DataFrame(data, columns = ['0','1','2','3','4','5','6'])
从与我的代码相似的代码中产生的数据框:
0 1 2 3 4 5 6
0 1.0 2.0 3.0 4.0 5.0 2.0 NAN
1 2.0 2.0 3.0 2.0 3.0 NAN NAN
2 4.0 4.0 5.0 1.0 NAN NAN NAN
这就是我希望新数据框的样子:
0 1 2 3 4 5 6
0 1.0 2.0 3.0 4.0 NAN NAN NAN
1 2.0 2.0 3.0 NAN NAN NAN NAN
2 4.0 4.0 NAN NAN NAN NAN NAN
我尝试计算 NAN 并使用它来定位最后一个和倒数第二个数值的位置,但它让我无处可去。
最终,我想要做的是忽略原始数据框中的 NAN,并连续取最后两个实际值(即整数)并将它们替换为 np.NAN。主要问题之一是一行中最后两个实数的位置可能因行而异。使原始数据框看起来像上面示例中的新数据框。
【问题讨论】:
-
请添加更多插图声明。
-
不确定你的意思
-
你能详细说明你想做什么吗?
-
我添加了一些说明
标签: python-3.x pandas numpy dataframe