Подкадры Подкадров - PullRequest
       1

Подкадры Подкадров

0 голосов
/ 06 июля 2018

Если у меня есть фрейм данных df_i, и я хочу разделить его на суб-фреймы на основе уникальных значений 'Cycle Number'

Я использую:

dfs = {k: df_i[df_i['Cycle Number'] == k] for k in df_i['Cycle Number'].unique()}

Предполагая, что «число циклов» колеблется от 1 до 50, и в каждом цикле у меня есть шаги в диапазоне от 1 до 15, как мне разбить каждый кадр данных на 15 дополнительных кадров данных?

Я предполагаю, что что-то из этого типа будет работать:

for i in range(1,51):
    dsfs = {k: dfs[i][dfs[i]['Step Number'] == k] for k in dfs[i]['Step Number'].unique()}

Но это вернет мне 15 кадров данных только из номера цикла, соответствующего 50, а не из предыдущих.

Если я хочу получить доступ к субкадру в 20-м цикле с шагом № 10, есть ли способ генерирования кадра субданных, чтобы я мог получить к нему доступ, используя что-то вроде dfs[20][10]?

Простая параллель:

Step Number Cycle Number    Desired Access
1   1   dfs[1][1]
2   1   dfs[1][2]
3   1   dfs[1][3]
4   1   dfs[1][4]
5   1   dfs[1][5]
1   2   dfs[2][1]
2   2   dfs[2][2]
3   2   dfs[2][3]
4   2   dfs[2][4]
5   2   dfs[2][5]
1   3   dfs[3][1]
2   3   dfs[3][2]
3   3   dfs[3][3]
4   3   dfs[3][4]
5   3   dfs[3][5]
1   4   dfs[4][1]
2   4   dfs[4][2]
3   4   dfs[4][3]
4   4   dfs[4][4]
5   4   dfs[4][5]

1 Ответ

0 голосов
/ 06 июля 2018

Вместо этого вы можете использовать ключи кортежа и использовать groupby. Вот минимальный пример:

df = pd.DataFrame([[0, 1, 2], [0, 1, 3], [1, 2, 4], [1, 2, 5], [1, 3, 6], [1, 3, 7]],
                  columns=['col1', 'col2', 'col3'])

dfs = dict(tuple(df.groupby(['col1', 'col2'])))

for k, v in dfs.items():
    print(k)
    print(v)

(0, 1)
   col1  col2  col3
0     0     1     2
1     0     1     3
(1, 2)
   col1  col2  col3
2     1     2     4
3     1     2     5
(1, 3)
   col1  col2  col3
4     1     3     6
5     1     3     7    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...