Mar*_*man 11 python subtraction dataframe 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)))
Run Code Online (Sandbox Code Playgroud)
我想计算它们之间的差异并尝试过
delta = new - old
Run Code Online (Sandbox Code Playgroud)
这会给索引和列不匹配的大量NaN.我想将索引和列的abscence视为零,(old ['n','D'] = 0).旧的永远是新的子空间.
有任何想法吗?
编辑:我想我没有彻底解释它.我不想用零填充delta数据帧.我想把旧的缺失索引和列视为零.然后我会在delta ['n','D']中以delta而不是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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6734 次 |
| 最近记录: |