簡體   English   中英

Pandas從每行列表中減去相同的數字

[英]Pandas subtracting same number from each row of lists

我有pandas數據幀:

df1['A'].ix[1:3]
2017-01-01 02:00:00    [33, 34, 39]
2017-01-01 03:00:00    [3, 43, 9]

df2['B'].ix[1:3]
2017-01-01 02:00:00    2
2017-01-01 03:00:00    3

我想執行以下操作:

difference = df1 - df2

預期結果是:

(df1 - df2).ix[1:3]
2017-01-01 02:00:00    [31, 32, 37]
2017-01-01 03:00:00    [0, 40, 6]

df1相應列表中的df2減法數

每個df1列表都具有相同的大小。

我想不出比list comprehension更好的方法。

我無法分辨df1的對象是什么。 也許可以list np.array IDK?

我更好地創建自己的例子

A = pd.Series([[33, 34, 39], [3, 43, 9]])
B = pd.Series([2, 3])

選項1
apply(np.asarray)

A.apply(np.asarray) - B

0    [31, 32, 37]
1      [0, 40, 6]
dtype: object

選項2
更丑,但更快,見下文

pd.Series((np.array(A.values.tolist()) - B.values[:, None]).tolist(), A.index)

0    [31, 32, 37]
1      [0, 40, 6]
dtype: object

定時

在此輸入圖像描述

您可以將列值從列表轉換為numpy數組,然后執行df1.A - df2.B

df1.A = df1.A.map(np.array)
difference = df1.A - df2.B

暫無
暫無

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

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