Python中文
首页
教程
问答
标签
搜索
登录
注册
如何在dataframe中将字典值转换为列?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我目前有一本字典<code>dicts</code>,看起来像这样(代码片段):</p> <pre><code>{'Axa': w x y z 0 9.597307 8.533429 43.4 Axa 6 0.000000 4.631714 32.0 Axa 17 0.662168 6.271585 37.7 Axa .. ... ... ... ... 171 4.023485 9.104185 28.2 Axa 172 0.846931 5.703871 38.8 Axa 174 20.063263 6.436114 27.7 Axa [66 rows x 4 columns]} {'Bxa': w x y z 1 0.454497 5.443401 43.6 Bxa 3 0.086371 4.869583 42.3 Bxa 4 2.264084 7.330367 36.6 Bxa 5 7.312782 12.418908 38.0 Bxa 8 10.935617 1.474324 43.5 Bxa [29 rows x 4 columns]} </code></pre> <p>它是一个带有<code>keys = {Axa, Bxa, Cxa, Dxa}</code>的字典,值将是<code>w</code>到<code>z</code>列</p> <p><code>type(dicts)</code>给出</p> <pre><code><class 'dict'> <class 'dict'> <class 'dict'> <class 'dict'> <class 'dict'> <class 'dict'> </code></pre> <p>我想检索如下所示的数据帧:</p> <pre><code>| w | x | w | z | | -------- | ----------| --------| -----| 0 9.597307 | 8.533429 | 43.4 | Axa| 1 0.000000 | 4.631714 | 32.0 | Axa | 2 0.662168 | 6.271585 | 37.7 | Axa | ... 63 4.023485 | 9.104185 | 28.2 | Axa| 64 0.846931| 5.703871| 38.8 | Axa | 65 20.063263| 6.436114| 27.7 | Axa | 67 0.454497 | 5.443401| 43.6 | Bxa| 68 0.086371 | 4.869583 | 42.3 | Bxa | 69 2.264084 | 7.330367| 36.6 | Bxa | </code></pre> <p>我试过这个:</p> <pre><code>df = pd.DataFrame(list(dicts.values()), columns = ['w', 'x', 'y', 'z']) </code></pre> <p>但我明白了:</p> <pre><code>ValueError: Must pass 2-d input. shape=(1, 66, 4) </code></pre> <p>通常我们使用<code>key</code>作为列名,使用<code>values</code>作为列值,但在这种情况下,我希望我的<code>values</code>两者都是。我该怎么做</p> <p>这是我的完整代码:</p> <pre><code>for ph in data.model.unique(): dicts = {} "This loop aims to extract outliers from the dataset using Gaussian mixture models for each phone model and create new df" data = data[data.model==ph] data = data[['r_var', 'b_var', 'SPAD', 'model']] data = data[['r_var', 'b_var']].values probs = gmm.score_samples(data) probs_mean, probs_sd = mean(probs), std(probs) cut_off = probs_sd * 2 lower, upper = probs_mean - cut_off, probs_mean + cut_off not_outliers = data[probs > lower] # append to dicts dicts[ph] = not_outliers df = pd.concat(dicts).reset_index(drop=True) print(df) </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>如果dict的值是数据帧,则可以使用<code>concat</code>:</p> <pre><code>df = pd.concat(list(dicts.values()),ignore_index=True) </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何在python3x中以垂直和水平的方式格式化列表?
9 回答
如何在python3x中创建datetime对象
6 回答
如何在python3x中取消pickle一个在python2.7中被pickle的模型?
9 回答
如何在python3x中格式化字典键
5 回答
如何在python3x中正确地通过sockets发送字典的内容?
2 回答
如何在python3x中调用if语句中的类和函数
3 回答
如何在Python3上三取二列表
9 回答
如何在python3上为方法搜索RegEx创建模式?
4 回答
如何在Python3上使用HTMLUnit和Selenium 2.45.0
8 回答
如何在Python3上使用telebot发送没有bot.polling()的消息
3 回答
如何在python3上使用Tkinter更新GUI?
2 回答
如何在python3上使用urllib和代理对HTTPS页面发出请求
9 回答
如何在Python3上制作按键
10 回答
如何在python3上发布图像和文本多部分表单?
7 回答
如何在Python3上安装Bob?
7 回答
如何在python3上安装Django?
7 回答
如何在python3上安装第三方模块
3 回答
如何在Python3上安装袖扣?
3 回答
如何在python3上打印当前日期?
8 回答
如何在Python3上执行此javascript代码?
1 回答