Вы можете использовать io.StringIO
кормить строку в read_csv
:
In [23]: pd.read_csv(io.StringIO('\n'.join(list_vals)), delim_whitespace=True)
Out[23]:
col_a col_B col_C
0 12.0 34.0 10.0
1 15.0 111.0 23.0
Это имеет то преимущество, что оно автоматически интерпретирует тип ция, что панды будут делать, если вы читаете обычным csv-- столбцы поплавки:
In [24]: _.dtypes
Out[24]:
col_a float64
col_B float64
col_C float64
dtype: object
В то время как вы могли бы просто накормить свой список в конструктор DataFrame непосредственно, все останется строка:
In [21]: pd.DataFrame(columns=list_vals[0].split(),
data=[row.split() for row in list_vals[1:]])
Out[21]:
col_a col_B col_C
0 12.0 34.0 10.0
1 15.0 111.0 23
In [22]: _.dtypes
Out[22]:
col_a object
col_B object
col_C object
dtype: object
Мы могли бы добавить dtype=float
, чтобы исправить это, конечно, но мы могли бы иметь смешанные типы, с которыми подход read_csv
будет обрабатываться обычным способом, и здесь мы должны будем сделать это вручную.
спасибо, это отличный ответ – user308827