python - 从多索引数据框中选择列,例如制作直方图
问题描述
这是我第一次使用多索引数据框。我有一个看起来像这样的数据框(小例子):
import random
col3=[0,0,0,0,2,4,6,0,0,0,100,200,300,400]
col4=[0,0,0,0,4,6,8,0,0,0,200,900,400, 500]
d = {'Unit': [1, 1, 1, 1, 2, 2, 2, 3, 4, 5, 6, 6, 6, 6],
'Year': [2014, 2015, 2016, 2017, 2015, 2016, 2017, 2017, 2014, 2015, 2014, 2015, 2016, 2017], 'col3' : col3, 'col4' : col4 }
df = pd.DataFrame(data=d)
df.groupby(['Unit', 'Year']).sum()
df = df.groupby(['Unit', 'Year']).sum()
df['mask'] = (df.groupby(level=0, group_keys=False)
.apply(lambda x: x.col3/x.col4.shift()))
df['mask'] = df['mask'].fillna(0)
现在我想从掩码列中的值制作一个直方图,如果不先制作一个列表,这可能吗?
我是这样做的:
values = [x for x in df['mask']]
plt.hist(values)
但我想最好在没有中间列表步骤的情况下做到这一点。
谢谢,
仁
解决方案
推荐阅读
- python - 有没有办法构建循环模块导入和安装
- java - 尝试捕获 null 和空数组
- android - 拖放应用程序构建器许可。如何确保源代码不会被反编译和重用?
- python - gtk-builder-error-quark:无效的对象类型“WebKitWebView”
- debian - debian 软件包可以安装存储库吗?
- c# - 值列表中的值存在于弹性字段列表嵌套c#中
- blazor - Blazor 在尝试激活 DefaultAuthorizationPolicyProvider 时无法解析 AuthorizationOptions
- php - 为什么我的外部样式 css 表在 IE 中没有通过,但在 Chrome 中可以通过?
- chart.js - cartjs 工具提示显示在图表上的错误位置
- python - 梯度计算