[英]Pandas column addition/subtraction
我正在使用pandas / python數據幀。 我想做一個滯后減法。
我目前正在使用:
newCol = df.col - df.col.shift()
這導致第一點出現NaN:
NaN
45
63
23
...
第一個問題:這是這樣做減法的最好方法嗎?
第二:如果我想向這個新列添加一列(相同的行數)。 有沒有辦法可以讓所有NaN的0用於計算?
例如:
col_1 =
Nan
45
63
23
col_2 =
10
10
10
10
new_col =
10
55
73
33
並不是
NaN
55
73
33
謝謝。
我認為你的計算滯后的方法很好:
import pandas as pd
df = pd.DataFrame(range(4), columns = ['col'])
print(df['col'] - df['col'].shift())
# 0 NaN
# 1 1
# 2 1
# 3 1
# Name: col
print(df['col'] + df['col'].shift())
# 0 NaN
# 1 1
# 2 3
# 3 5
# Name: col
如果你想NaN
加(或減)一個數是數(不NaN
),使用add
(或sub
)方法fill_value = 0
:
print(df['col'].sub(df['col'].shift(), fill_value = 0))
# 0 0
# 1 1
# 2 1
# 3 1
# Name: col
print(df['col'].add(df['col'].shift(), fill_value = 0))
# 0 0
# 1 1
# 2 3
# 3 5
# Name: col
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.