python - 如何计算数据框中的条件密度?
问题描述
我有一个像下面这样的数据框。
amplitude -13.125 |-13.125 |-11.875 |-11.875 |-11.25 |-11.25
duration -----------|--------|--------|--------|--------|--------
1 NaN |NaN |NaN |NaN |NaN |NaN
2 NaN |0.008032|NaN |NaN |NaN |NaN
3 0.004016|NaN |NaN |NaN |0.004016|0.004016
4 0.9 |NaN |NaN |NaN |NaN |NaN
5 NaN |NaN |NaN |NaN |NaN |NaN
--------------------|--------|--------|--------|--------|--------
sum 0.904016|0.008032|NaN |NaN |0.004016|0.004016
如何在数据框中的行和列的交点处找到值?另外,我想通过将我找到的值除以“总和”中的值来计算密度。例子:
duration amplitude density
3 -13.125 0.004016/0.904016
2 -13.125 0.008032/0.008032
...
解决方案
假设总和行是数据框的最后一行:
# Divide every line except the last line by the last line
density = (df.iloc[:-1] / df.iloc[-1]).stack().to_frame('density')
结果:
density
duration amplitude
2 -13.125 1.000000
3 -13.125 0.004442
-11.250 1.000000
-11.250 1.000000
4 -13.125 0.995558
推荐阅读
- javascript - JavaScript计算数字的百分比场地
- elixir - 如何在 Elixir 中使用捕获运算符从列表中捕获元组?
- javascript - Javasript 数组看不到表标签
- node.js - 在 Promise 中设置变量
- java - 在属于每个代理集合的 LinkedHashMap 中查找命名属性的平均值
- react-native - 如何使用电话信用在 React Native 中以编程方式发送 SMS
- c++ - C++:使用自定义散列和相等函数扩展已经创建的 C 结构,以便在 unordered_map 中使用
- python - 为什么我的 pygame 按钮并不总是有效?
- jquery - Rail6-Webpack jQuery 配置实现导航栏下拉工作 0
- python - Python - TypeError:'str'和'int'的实例之间不支持'<'