1
我試圖對groupby的結果的所有行進行操作。 基本上我有類似如下:在熊貓羣的多行上操作
import pandas as pd
import numpy as np
def tdiff(dff):
# return(dff[dff.task.eq('d')].start - dff[dff.task.ne('d')].end)
return(dff[dff.task.eq('d')].start - dff.end)
a = []
p = 0
while p < 6:
i = 0
while i < 4:
a.insert(i,p)
i = i + 1
p = p + 1
d={'task':pd.Series(6*['a','b','c','d'],name='task'),
'jobid':pd.Series(a),
'start':pd.Series(np.random.randn(24)),
'end':pd.Series(np.random.randn(24))}
df = pd.DataFrame(d)
print(df)
dt = df.groupby('jobid').apply(tdiff)
dt.name='tdiff'
print(type(dt))
print(dt)
除我有每組十多個不同的 '任務'(A,B,C,d,... z)表示。並且並不是所有的團隊都保證除了任務'd'之外的所有任務都有保證。除了任務'd'之外,還有至少1個任務。
在每個GROUPBY導致我想d.start和年底的所有其他任務之間獲得的區別。 我該怎麼做?
我試過了一個應用函數,看起來好像返回了一個系列。但是,除了'd'以外,我都會得到NaN。我想我不知道如何從每組中所有其他任務的「開始」值中減去d.end。
謝謝!