簡體   English   中英

減去數據幀pandas時的NaNs

[英]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。 我想將索引和列的abscence視為零,(old ['n','D'] = 0)。 舊的永遠是新的子空間。

有任何想法嗎?

編輯:我想我沒有徹底解釋它。 我不想用零填充delta數據幀。 我想把舊的缺失索引和列視為零。 然后我會在delta ['n','D']中以delta而不是NaN獲得值。

使用帶fill_value=0 sub

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM