EDIT: если необходимо для каждого цикла создать DataFrame
и обработать его, выполнить итерацию и, наконец, DataFrame
добавить в список DataFrames. Последний concat
все агрегированные кадры данных вместе:
dfs = []
l1 = ['a', 'b', 'c']
for i in l1:
df = pd.read_csv(file)
df = df.groupby('col').agg({'col1':'mean', 'col2':'sum'})
#another code
dfs.append(df)
Sp = pd.concat(dfs, ignore_index=True)
Старый ответ:
Я думаю, нужно вызвать DataFrame
конструктор с list
:
Sp = pd.DataFrame({'col1':l1})
Если это действительно нужно, но это самое медленное из возможных решений 1017 *:
6) обновление пустого фрейма по одной строке за раз . Я видел, что этот метод использовал слишком много. Это безусловно самый медленный. Это, вероятно, обычное место (и достаточно быстрое для некоторых структур Python), но DataFrame выполняет достаточное количество проверок при индексировании, поэтому обновление строки всегда будет происходить очень медленно. Гораздо лучше создавать новые структуры и конкатать.
Sp=pd.DataFrame()
l1=['a', 'b', 'c']
for j, i in enumerate(l1):
Sp.loc[j, 'col1'] = i
print (Sp)
col1
0 a
1 b
2 c