簡體   English   中英

Pandas列加/減

[英]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.

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