Вы можете легко делать то, что вы хотите с Python и пандами:
import pandas as pd
data = {1: [1, 2, 3, 1, 2, 3, 4, 5, 6, 1]}
data.update({val: range(10) for val in range(2, 101)})
df = pd.DataFrame(data)
print('df_shape =', df.shape)
for value in sorted(df[1].unique()):
sub_df = df[df[1] == value]
print(
'value = {}, sub_df_shape = {}'
.format(value, sub_df.shape))
Выход:
df_shape = (10, 100)
value = 1, sub_df_shape = (3, 100)
value = 2, sub_df_shape = (2, 100)
value = 3, sub_df_shape = (2, 100)
value = 4, sub_df_shape = (1, 100)
value = 5, sub_df_shape = (1, 100)
value = 6, sub_df_shape = (1, 100)
EDIT
Вы можете получить доступ к субкадрам в любое время. Если вы все еще хотите хранить субкадры в какой-то отдельной переменной, вы можете использовать словарь:
ans = dict()
for value in sorted(df[1].unique()):
ans[value] = df[df[1] == value]
Вы можете даже создать отдельную переменную для каждого субкадра (хотя это что-то странное, и я бы избегал делать это при любых обстоятельствах):
for value in sorted(df[1].unique()):
sub_df = df[df[1] == value]
exec('df_{} = sub_df'.format(value))