首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫dataFrame创作

熊猫dataFrame创作
EN

Stack Overflow用户
提问于 2017-12-12 16:06:53
回答 4查看 65关注 0票数 0

我想用下面的字典创建一个熊猫数据框架

代码语言:javascript
复制
     a ={('p','l',2):3,('p','l',3):4,('p','l1',5):4,('p','l',5):4,
      ('p','l',6):2,('p','l2',6):4,('p','l1',2):5}

              m n o p
            o p l 2 3
            1 p l 3 4
            2 p l1 5 4
            3 p l 6 2

我写了如下逻辑df = pd.DataFrame(a,列=‘m’,'n','o','p'),但是它不起作用,你能帮帮我吗?

提前感谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-12-12 16:15:53

还有另一种选择-

代码语言:javascript
复制
df = pd.DataFrame(list(a.keys()), columns=list('mno'))
df['p'] = list(a.values())

df

   m   n  o  p
0  p  l2  6  4
1  p   l  6  2
2  p   l  3  4
3  p   l  5  4
4  p  l1  2  5
5  p  l1  5  4
6  p   l  2  3

(编辑)取回一个dict post groupby:如果您只想要p的结果,那么在p上调用mean,然后调用to_dict -

代码语言:javascript
复制
df.groupby(['m', 'n']).p.mean().to_dict()
{('p', 'l'): 3.25, ('p', 'l1'): 4.5, ('p', 'l2'): 4.0}
票数 1
EN

Stack Overflow用户

发布于 2017-12-12 16:39:11

不使用numpy

代码语言:javascript
复制
pd.DataFrame(np.append(np.array(list(a.keys())),np.array(list(a.values()))[:,None],1),columns=list('abcd'))
Out[1151]: 
   a   b  c  d
0  p   l  2  3
1  p   l  3  4
2  p  l1  5  4
3  p   l  5  4
4  p   l  6  2
5  p  l2  6  4
6  p  l1  2  5
票数 2
EN

Stack Overflow用户

发布于 2017-12-12 16:08:30

Series构造函数与reset_index结合使用

代码语言:javascript
复制
df = pd.Series(a).reset_index()
df.columns=['m','n','o','p']
print (df)
   m   n  o  p
0  p   l  2  3
1  p   l  3  4
2  p   l  5  4
3  p   l  6  2
4  p  l1  2  5
5  p  l1  5  4
6  p  l2  6  4

或者首先对嵌套的list comprehension使用list

代码语言:javascript
复制
a = [list(k) + [v] for k,v in a.items()]
df = pd.DataFrame(a,columns=['m','n','o','p']) 
print (df)
   m   n  o  p
0  p   l  2  3
1  p   l  5  4
2  p  l2  6  4
3  p  l1  2  5
4  p   l  3  4
5  p   l  6  2
6  p  l1  5  4
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47776866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档