Разделяйте фрейм данных в зависимости от количества столбцов. - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть фрейм данных, как показано в примере ниже.

        0            1            2    3
0       a       sample            1  NaN
1  sample         this            1  NaN
2    this           is            1  NaN
3  sample         this           is  1.0
4      is  interesting          0.5  NaN
5    this           is  interesting  0.5
6      is            a       sample  1.0
7      is            a          0.5  NaN
8    this           is            a  0.5
9       a       sample         this  1.0

Мне нужно разделить кадры данных на основе их количества столбцов, например,

df_1
 0       a       sample            1
 1  sample         this            1
 2    this           is            1
 3      is  interesting          0.5 
 4      is            a          0.5

and df_2 
1  sample         this           is  1.0
2    this           is  interesting  0.5
3      is            a       sample  1.0
4    this           is            a  0.5
5       a       sample         this  1.0

Эти кадры данных являются динамическими c. Может иметь n столбцов. Пожалуйста, предложите некоторые решения.

Спасибо, Адитья.

1 Ответ

0 голосов
/ 09 апреля 2020

Я действительно не знаю, почему кто-то не пытался и дал -1 за этот вопрос, но я боролся за это. Наконец-то я понял это.

Рассматривает основной фрейм данных как df_allgrams и находится в структуре списка.

        d = defaultdict(list)
        from collections import defaultdict
        for i in df_allgrams:
            d[len(i)].append(i)
        out = [d[i] for i in sorted(d)]

for lists in out:
    df_lists = pd.DataFrame(lists)
    print(df_lists)

Дает фактический вывод, показанный выше df_1 и df_2.

             0            1    2
0           is            a  0.5
1  interesting            i  1.0
2       sample         this  1.0

             0            1            2    3
0         this           is            a  0.5
1            a       sample         this  1.0
2         this           is  interesting  0.5
3           is  interesting            i  1.0
        0            1            2            3    4
0       a       sample         this           is  1.0
1  sample         this           is  interesting  1.0
2    this           is            a       sample  1.0
3    this           is  interesting            i  1.0

Это также будет работать динамически.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...