2016-02-24 5 views
1

я создаю список следующим образом:Создать панда DataFrame итеративно

myList = [] 
for i in range(0,10): 
    val0 = 1 # some formula for obtaining values 
    val1 = 2.5 
    val2 = 1.8 
    myList.append([val0,val1,val2]) 

Как я могу сделать то же петлю для панд DataFrame (т.е. myList должен быть DataFrame).

+0

[CONCAT] (http://pandas.pydata.org/pandas-docs/version/0.16 .2/сгенерировано/pandas.concat.html), если вам действительно нужно, но лучше всего выполнить конкатенацию в списке, так как pandas имеет вложение O (n)). – Alex

+0

@Alex: Не могли бы вы привести пример, имеющий отношение к моему конкретному случаю? – JoeBlack

+0

Являются ли другие ответы понятными? – Alex

ответ

0

В идеале вы хотите создать свой DataFrame когда у вас есть все данные на месте. Слегка модифицируя пример:

my_df= [] 
for i in range(0,10): 
    d = { 
     'val0' : 1 # some formula for obtaining values 
     'val1' : 2.5 
     'val2' : 1.8 
    } 
    my_df.append(d) 

my_df = pd.DataFrame(my_df) 

Sp Теперь my_df является DataFrame с val0, val1 и val2 как столбцы

0

если я получил свой вопрос прямо:

import pandas as pd 

myList = [] 

for i in range(0,10): 
    val0 = 1 # some formula for obtaining values 
    val1 = 2.5 
    val2 = 1.8 
    myList.append([val0,val1,val2]) 

df = pd.DataFrame(myList, columns=['val0','val1','val2']) 
print(df) 

PS вы не хотите делать добавлять данные в DataFrame в цикле - это не будет очень эффективным.

Выход:

val0 val1 val2 
0  1 2.5 1.8 
1  1 2.5 1.8 
2  1 2.5 1.8 
3  1 2.5 1.8 
4  1 2.5 1.8 
5  1 2.5 1.8 
6  1 2.5 1.8 
7  1 2.5 1.8 
8  1 2.5 1.8 
9  1 2.5 1.8