从系列字典创建Pandas数据框架

3

我有一个包含68个键的字典,每个键都有一个包含50个值的列表。例如,我的字典如下所示,其中每个序列都有50个值,例如value1、value2...

key1 : Series1
key2 : Series2
 .   :  .
key50:  Series50

我现在想通过该字典创建以下数据帧:
key1          key2
value1      value1
 .            .
 .            .
value50     value 50

我查看了其他帖子并尝试了以下命令:

df= pd.DataFrame([dict])

然而,这会产生以下结果:
key1          key2
Series1       Series2

如何获取dataframe中的值而不是Series。最终,我应该得到大小为50 * 68的dataframe。

3个回答

7

直接传递 dict_ :

df = pd.DataFrame(dict_)

此外,不要使用 dict 作为变量名,这是不好的习惯,并且会掩盖同名的内置类。


有时候我会想太多了。拆包单个元素列表其实就是直接传递它本身 ;)。 - Bharath M Shetty
@Bharathshetty 我本来想纠正你,但我很想写一个答案.. :-) - cs95
现在很少有关于Pandas的问题。 - Bharath M Shetty
1
它会掩盖内置函数,这将导致“dict”对象不可调用。我遇到过很多次这种情况。 - Bharath M Shetty
@FriedrichFranz 如果你解决了这个问题,那么下一个问题就会出现... :p - cs95
显示剩余2条评论

1
解包列表可能会有帮助,即:
df = pd.DataFrame(*[dict])

如果你有一个类似以下的系列字典:

df = pd.DataFrame({'A':[1,2,3,4,5,6],'B':[2,5,1,1,5,1]})
data = {'A' : df['A'], 'B' : df['B']}

然后。
ndf = pd.DataFrame(*[data])
  A   B
0 1   2
1 2   5
2 3   1
3 4   1
4 5   5
5 6   1

0
我刚刚遇到了类似的问题,我有一个pd.Series的字典。我希望字典的键作为索引,系列的索引作为列名。
dic ={0: pd.Series([0.1,0.2,0.3],index=['a','b','c']), 1: pd.Series([1.1,1.2,1.3], index=['a','b','c'])}

dic

Out[21]: 
{0: a    0.1
 b    0.2
 c    0.3
 dtype: float64,
 1: a    1.1
 b    1.2
 c    1.3
 dtype: float64}

df = pd.DataFrame(dic).T

df

Out[23]: 
     a    b    c
0  0.1  0.2  0.3
1  1.1  1.2  1.3

我认为解决你的问题只是去掉.T而已。
df = pd.DataFrame(dic)
df
Out[4]: 
     0    1
a  0.1  1.1
b  0.2  1.2
c  0.3  1.3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接