У меня есть следующий список results (может быть намного больше):
['2017-09-01.csv', -322.0, -6.5, 99.0, 41, '2017-09-04.csv', -31.0, 3.5, 78.5, 30]
это формат 5 * 1, 5 * 1 и т. д.
Я ищу следующие результаты:
Date A B C D
'2017-09-01.csv', -322.0, -6.5, 99.0, 41,
'2017-09-04.csv', -31.0, 3.5, 78.5, 30
и я пытался использовать следующий код, чтобы преобразовать его в df:
x_sublists = [results[i:i+5] for i in range(0, len(results), 5)]
df11 = pd.DataFrame(x_sublists [1:], columns=x_sublists [0])
который закончился:
print(df11.shape)
Columns: [(-322.0,), (99.0,), (2017-09-04.csv,), (3.5,), (30,)]
print(df11)
Index: []
Я тоже пробовал это:
r_reshaped = np.array(results[5:], dtype=object).reshape((0, 5))
df11 = pd.DataFrame(r_reshaped, columns=results[:5])
который закончился:
print(df11.shape)
Columns: [(-322.0,), (99.0,), (2017-09-04.csv,), (3.5,), (30,)]
print(df11)
Index: []
Спасибо за ваш совет!






Использование reshape из numpy
import numpy as np
l=['2017-09-01.csv', -322.0, -6.5, 99.0, 41, '2017-09-04.csv', -31.0, 3.5, 78.5, 30]
pd.DataFrame(np.array(l).reshape((len(l)//5, 5)),columns=['data','A','B','C','D'])
Out[181]:
data A B C D
0 2017-09-01.csv -322.0 -6.5 99.0 41
1 2017-09-04.csv -31.0 3.5 78.5 30
@Giladbi да, похоже, ваш список не тот же порядок
Может быть б / с это не список? Я использую results.appened для его создания. results.append (store_predictions ['Net_Pnl ($)']. sum (). round () ) - одно из значений.
@Giladbi да, похоже, это кортеж, попробуйте results=[x[0] for x in results], а затем используйте мой подход выше
круто, это сработало, хотя и не в том же порядке. Я получил: data A B C D 0-322 99 2017-09-04.csv 3.5 30 + он дал мне только 1 строку .... может быть, мои «результаты» не являются списком ???