我有一個這樣的資料框
df = pd.DataFrame({
'app': [1,2,3,4,5],
'start_time': ['2022-03-11 22:26:00', '2022-03-11 22:26:30', '2022-03-11 22:27:00', '2022-03-11 22:27:30', '2022-03-11 22:28:00'],
'finish_time': ['2022-03-11 22:26:40', '2022-03-11 22:27:00', '2022-03-11 22:28:00', '2022-03-11 22:27:40', '2022-03-11 22:29:00']
})
df['start_time']=pd.to_datetime(df['start_time'])
df['finish_time']=pd.to_datetime(df['finish_time'])
我的主要目的是創建一個繪圖 x 軸是時間,y 軸是正在運行的應用程式的計數
通過這種方式,我的想法是在應用程式啟動時創建與正在運行的應用程式相同的新列。例如,在這種情況下,當應用程式 2 實際啟動時,應用程式 1 仍在運行(如果應用程式 2 包含在計數程序中很好),但我被困在這里(這是我打算制作的資料框的示例)
app start_time finish_time running_apps(if current app included)
0 1 2022-03-11 22:26:00 2022-03-11 22:26:40 1
1 2 2022-03-11 22:26:30 2022-03-11 22:27:00 2
2 3 2022-03-11 22:27:00 2022-03-11 22:28:00 2
3 4 2022-03-11 22:27:30 2022-03-11 22:27:40 2
4 5 2022-03-11 22:28:00 2022-03-11 22:29:00 2
如果其他人有其他想法,將不勝感激,謝謝
uj5u.com熱心網友回復:
您可以使用 numpy 廣播和np.trilfor lower triangle 來測驗下一個日期時間、chain bot hmask 和 count Trues by sum:
df['start_time'] = pd.to_datetime(df['start_time'])
df['finish_time'] = pd.to_datetime(df['finish_time'])
a = np.tril(df['finish_time'].to_numpy() > df['start_time'].to_numpy()[:,None])
b = np.tril(df['start_time'].to_numpy() < df['finish_time'].to_numpy()[:,None])
df['count'] = (a & b).sum(axis=1)
print (df)
app start_time finish_time count
0 1 2022-03-11 22:26:00 2022-03-11 22:26:40 1
1 2 2022-03-11 22:26:30 2022-03-11 22:27:00 2
2 3 2022-03-11 22:27:00 2022-03-11 22:28:00 1
3 4 2022-03-11 22:27:30 2022-03-11 22:27:40 2
4 5 2022-03-11 22:28:00 2022-03-11 22:29:00 1
或者如果需要在所有值之間進行比較:
df['start_time'] = pd.to_datetime(df['start_time'])
df['finish_time'] = pd.to_datetime(df['finish_time'])
a = (df['finish_time'].to_numpy() > df['start_time'].to_numpy()[:,None])
b = (df['start_time'].to_numpy() < df['finish_time'].to_numpy()[:,None])
df['count'] = (a & b).sum(axis=1)
print (df)
app start_time finish_time count
0 1 2022-03-11 22:26:00 2022-03-11 22:26:40 2
1 2 2022-03-11 22:26:30 2022-03-11 22:27:00 2
2 3 2022-03-11 22:27:00 2022-03-11 22:28:00 2
3 4 2022-03-11 22:27:30 2022-03-11 22:27:40 2
4 5 2022-03-11 22:28:00 2022-03-11 22:29:00 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/448578.html
標籤:Python 熊猫 matplotlib
