如何将带有列表的列转换为数据框?

How to turn column with lists into dataframe?

我有一个数据集:

val
[0.5, 0.7,....,0.8]
[0.11, 0.4,....,0.77]
...
[0.99, 0.1,....,0.4]

是pandas.core.series.Series

每个列表中有 1000 行和 200 个值。我想将其转换为具有 200 列和 1000 行的数据框,但是当我执行 pd.DataFrame(list(df)) 时,它显示 NumPy.float64 object is not iterable。如何解决?

具有以下数据集:

data = pd.Series([[0.5, 0.7, 0.8],
[0.11, 0.4, 0.77]])

正在做

pd.DataFrame(data.values.tolist())

会产生预期的结果:

       0      1    2
0   0.50    0.7 0.80
1   0.11    0.4 0.77

你可以使用字典理解:

import pandas as pd
s = pd.Series([[1,2,3],[4,5,6]])  # please provide a reproducible example
pd.DataFrame.from_dict({i:col for i,col in s.iteritems()})

returns

   0  1
0  1  4
1  2  5
2  3  6

您还可以将 from_recordstranspose 一起使用:

pd.DataFrame.from_records(s).transpose()
>>> data = pd.core.series.Series([[0.5, 0.7, 0.8],[0.11, 0.4, 0.77]])
>>> data
0      [0.5, 0.7, 0.8]
1    [0.11, 0.4, 0.77]
dtype: object
>>> l = data.values.tolist()
>>> l
[[0.5, 0.7, 0.8], [0.11, 0.4, 0.77]]
>>> pd.DataFrame(l)
      0    1     2
0  0.50  0.7  0.80
1  0.11  0.4  0.77