data = pd.DataFrame({'Names': ['Joe', 'John', 'Jasper', 'Jez'] * 4, 'Ob1':
    np.random.rand(16), 'Ob2': np.random.rand(16)})
UniqueNames = data.Names.unique()
DataFrameDict = {elem: pd.DataFrame for elem in UniqueNames}
for key in list(DataFrameDict.keys()):
    DataFrameDict[key] = data[:][data.Names == key]
Разделение фрейма данных на несколько фреймов данных