Как преобразовать список в DataFrame по строкам

Некоторые ответы частично ошибочны, и некоторые факты в них также частично ошибочны.

Ответьте на свой вопрос: Да! Вы можете.

В Typcript

class A {
    private a1;
    private a2;


}

Создает следующий код в Javascript:

var A = /** @class */ (function () {
    function A() {
    }
    return A;
}());

как @Erik_Cupal , вы можете просто сделать:

let a = new A();
let array = return Object.getOwnPropertyNames(a);

Но это неполное. Что произойдет, если ваш класс имеет собственный конструктор? Вам нужно сделать трюк с Typcript, потому что он не будет компилироваться. Вам нужно назначить любое:

let className:any = A;
let a = new className();// the members will have value undefined

Общее решение будет:

class A {
    private a1;
    private a2;
    constructor(a1:number, a2:string){
        this.a1 = a1;
        this.a2 = a2;
    }
}

class Describer{

   describeClass( typeOfClass:any){
       let a = new typeOfClass();
       let array = Object.getOwnPropertyNames(a);
       return array;//you can apply any filter here
   }
}

Для лучшего понимания это будет ссылаться в зависимости от контекста.

0
задан desertnaut 28 March 2019 в 07:34
поделиться

1 ответ

Из документов :

Итеративное добавление строк в DataFrame может быть более сложным в вычислительном отношении, чем одна конкатенация. Лучшее решение - добавить эти строки в список, а затем объединить список с исходным кадром DataFrame сразу.

Вы можете так же легко добавить свои данные в список и создать экземпляр DataFrame со списком.

import pandas as pd

container = []

for a in x:
    # get the text you want
    text = 'somestring'
    char_list = [i for i in text]
    container.append(char_list)

# now create your DataFrame
frame = pd.DataFrame(container, columns=['Col1','Col2', 'Col3',  'Col4', 'Col5','Col6', 'Col7', 'Col8','Col9', 'Col10', 'Col11', 'Col12', 'Col13', 'Col14'])

Пример:

In [1]: datlist = [[i for i in '01234567890123'] for ii in range(10)]

In [2]: datlist
Out[2]:
[['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '1', '2', '3'],
 ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '1', '2', '3'],
 ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '1', '2', '3'],
 ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '1', '2', '3'],
 ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '1', '2', '3'],
 ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '1', '2', '3'],
 ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '1', '2', '3'],
 ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '1', '2', '3'],
 ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '1', '2', '3'],
 ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '1', '2', '3']]

In [3]: pd.DataFrame(datlist, columns=range(len(datlist[0])))
Out[3]:
  0  1  2  3  4  5  6  7  8  9  10 11 12 13
0  0  1  2  3  4  5  6  7  8  9  0  1  2  3
1  0  1  2  3  4  5  6  7  8  9  0  1  2  3
2  0  1  2  3  4  5  6  7  8  9  0  1  2  3
3  0  1  2  3  4  5  6  7  8  9  0  1  2  3
4  0  1  2  3  4  5  6  7  8  9  0  1  2  3
5  0  1  2  3  4  5  6  7  8  9  0  1  2  3
6  0  1  2  3  4  5  6  7  8  9  0  1  2  3
7  0  1  2  3  4  5  6  7  8  9  0  1  2  3
8  0  1  2  3  4  5  6  7  8  9  0  1  2  3
9  0  1  2  3  4  5  6  7  8  9  0  1  2  3
0
ответ дан ralex 28 March 2019 в 07:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: