如何将带有列表的列转换为数据框?
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_records
与 transpose
一起使用:
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
我有一个数据集:
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_records
与 transpose
一起使用:
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