0
我在這裏有一個很有趣的問題,我有一個數據集一樣,灌裝數據框列
id, start, end
1234 200 400
1235 300 500
1236 100 900
1236 200 1200
1236 300 1400
主要目標:我想指望每個併發會話數ID。
at 100, id:1236 has 1 session running
at 200, id:1236 has 2 sessions
at 300, id:1236 has 3 sessions
...
at 1000m id:1236 has 2 sessions
etc
我的解決辦法:
- 從1列添加到1400(會話的最小值和最大值),以所有行
- 填寫會話初始值和會話結束值之間的列1
- 然後添加用戶的所有行,以獲得上述結果。
在大熊貓:
df = pd.read_csv(data+fileName,sep="\t",usecols=[0,1,2],names=['id','start','end'])
for i in range(0,1440):
df[str(i)]=0
print df.columns
我可以添加列,並在想如何填寫1至會議開始和結束之間的這些列的每一行英寸每行可以有不同的會話開始和結束。
任何提示都會有所幫助。我只是嘗試在熊貓,但後來我必須將其移植到Apache pyspark,其中沒有工人節點中的熊貓。
在熊貓中,你也可以這樣做:'df [(df.start <= t)&(df.end> = t)]。 groupby(「id」)。count()['start']。reset_index()'其中't'是你想要的時間。相應地重命名最後一列。但我不知道這是否可以通過pyspark移植。 – Khris
謝謝@Kris,的確是一個很好的方法。在這裏我將不得不從1到1400循環來獲得結果,因此處理器密集型,我的方法看起來內存密集。 – suppoor