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