减去数据帧时的 NaN pandas
NaNs when subtracting dataframes pandas
我有两个数据框,它们的索引和列只是有些重叠。
old = pd.DataFrame(index = ['A', 'B', 'C'],
columns = ['k', 'l', 'm'],
data = abs(np.floor(np.random.rand(3, 3)*10)))
new = pd.DataFrame(index = ['A', 'B', 'C', 'D'],
columns = ['k', 'l', 'm', 'n'],
data = abs(np.floor(np.random.rand(4, 4)*10)))
我想计算它们之间的差异并尝试过
delta = new - old
这会产生很多索引和列不匹配的 NaN。我想将索引和列的缺失视为零,(old['n', 'D'] = 0)。 old 永远是 new 的子空间。
有什么想法吗?
编辑:
我想我解释得不够彻底。我不想用零填充增量数据框。我想将旧的缺失索引和列视为零。然后我会在 new['n', 'D'] 中以增量而不是 NaN 的形式获取值。
将 sub
与 fill_value=0
一起使用:
In [15]:
old = pd.DataFrame(index = ['A', 'B', 'C'],
columns = ['k', 'l', 'm'],
data = abs(np.floor(np.random.rand(3, 3)*10)))
new = pd.DataFrame(index = ['A', 'B', 'C', 'D'],
columns = ['k', 'l', 'm', 'n'],
data = abs(np.floor(np.random.rand(4, 4)*10)))
delta = new.sub(old, fill_value=0)
delta
Out[15]:
k l m n
A 0 3 -9 7
B 0 -2 1 8
C -4 1 1 7
D 8 6 0 6
我有两个数据框,它们的索引和列只是有些重叠。
old = pd.DataFrame(index = ['A', 'B', 'C'],
columns = ['k', 'l', 'm'],
data = abs(np.floor(np.random.rand(3, 3)*10)))
new = pd.DataFrame(index = ['A', 'B', 'C', 'D'],
columns = ['k', 'l', 'm', 'n'],
data = abs(np.floor(np.random.rand(4, 4)*10)))
我想计算它们之间的差异并尝试过
delta = new - old
这会产生很多索引和列不匹配的 NaN。我想将索引和列的缺失视为零,(old['n', 'D'] = 0)。 old 永远是 new 的子空间。
有什么想法吗?
编辑: 我想我解释得不够彻底。我不想用零填充增量数据框。我想将旧的缺失索引和列视为零。然后我会在 new['n', 'D'] 中以增量而不是 NaN 的形式获取值。
将 sub
与 fill_value=0
一起使用:
In [15]:
old = pd.DataFrame(index = ['A', 'B', 'C'],
columns = ['k', 'l', 'm'],
data = abs(np.floor(np.random.rand(3, 3)*10)))
new = pd.DataFrame(index = ['A', 'B', 'C', 'D'],
columns = ['k', 'l', 'm', 'n'],
data = abs(np.floor(np.random.rand(4, 4)*10)))
delta = new.sub(old, fill_value=0)
delta
Out[15]:
k l m n
A 0 3 -9 7
B 0 -2 1 8
C -4 1 1 7
D 8 6 0 6