第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在pandas dataframe python中減去兩行的一系列列

在pandas dataframe python中減去兩行的一系列列

寶慕林4294392 2023-07-11 14:33:12
我有一個帶有六個不同標簽的數(shù)據(jù)框:presence、x、y、vx和。我想?yún)^(qū)分一系列列 [ , , , ] 上的兩個行索引。然而,減去給了我. 謝謝您的幫助。vylanexyvxvyNaNimport pandas as pddata = {'presence': [1, 1, 0, 1],        'x': [17, 35, 46, 57],        'y': [4, 4, 8, 0],        'vx': [2, 5, 9, 12],        'vy': [0.3, 0.5, 0.2, 0],         'lane': [0, 1, 2, 0]}df = pd.DataFrame(data)a = df.iloc[[2]]b = df.iloc[[1]]diff_x = b[['x','y']] - a[['x','y']] # Gives two rows and two columns of nan# Expected output: 11  4 
查看完整描述

3 回答

?
萬千封印

TA貢獻1891條經(jīng)驗 獲得超3個贊

這是因為您將 a 和 b 拉出為DataFrame不是系列,


a

Out[312]: 

   presence   x  y  vx   vy  lane

2         0  46  8   9  0.2     2

b

Out[313]: 

   presence   x  y  vx   vy  lane

1         1  35  4   5  0.5     1

上面的數(shù)據(jù)幀index是不同的,當我們進行計算時pandas會檢查index第一個,如果索引不匹配那么輸出將是NaN


快速解決 :


diff_x = b[['x','y']].values - a[['x','y']].values

diff_x

Out[311]: array([[-11,  -4]], dtype=int64)


查看完整回答
反對 回復 2023-07-11
?
繁星coding

TA貢獻1797條經(jīng)驗 獲得超4個贊

pandas是面向索引的,轉(zhuǎn)換為數(shù)組然后比較:


a = df.iloc[[2]]

b = df.iloc[[1]]

diff_x = a[['x','y']].to_numpy() - b[['x','y']].to_numpy()

#array([[11,  4]], dtype=int64)

或者,對于 2 個連續(xù)行,您可以使用diff:


df[['x','y']].diff().iloc[2]


x    11.0

y     4.0

Name: 2, dtype: float64


查看完整回答
反對 回復 2023-07-11
?
守著一只汪

TA貢獻1872條經(jīng)驗 獲得超4個贊

您可以使用.loc樣式索引來獲取pandas.Series特定行索引和列名稱。然后你可以減去這兩個系列。

如果您希望得到 11 和 4 作為輸出,則必須反轉(zhuǎn)帖子中的減法運算。

diff_x = df.loc[2, ["x", "y"]] - df.loc[1, ["x", "y"]]


# x? ? 11.0

# y? ? ?4.0

# dtype: float64


查看完整回答
反對 回復 2023-07-11
  • 3 回答
  • 0 關注
  • 179 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號