python - Python DataFrame:每行的反距离概率
问题描述
我有一个pandas DataFrame
形状 (2697, 30) 的示例,其中每个单元格都是标准化距离(每行总和为一个)。我现在想将每一行转换为最低距离应该获得最高概率的概率。我知道公式是
1/d / sum(1/d)
但是我不知道如何实现这一点。ADataFrame.apply
可以(我认为)不执行此操作(如果我错了请纠正我,我真的很喜欢学习)。
编辑:如果可能有帮助,我也有原始的未归一化距离
解决方案
import pandas as pd
from sklearn import preprocessing
df = df.apply(lambda x: 1 / x)
x = df.values #returns a numpy array
scaler = preprocessing.Normalizer(norm='l1')
x_scaled = scaler.fit_transform(x)
df = pd.DataFrame(x_scaled, columns=df.columns)
推荐阅读
- database - 一段时间后自动删除表中的行 - JPA Spring Boot
- perl - 如何强制 EXPR 而不是 GLOB 取消引用?
- sqlite - sqlite select query top X% for each item
- go - 从切片中删除选定元素的最佳方法
- laravel - 调用未定义的方法 DateTime::getTimezone()
- c# - Xamarin:java.security.cert.CertPathValidatorException:找不到证书路径的信任锚
- python - 如何使用“Min()”创建 SQL Pypika 查询
- typo3 - 为什么在 TYPO3 CMS 9.5 中 CDATA 包装的内联 Javascript 为空?
- mercurial - 生成包含在修订之间更改的文件的目录列表
- android - TfLiteGpuDelegate Invoke:委托应该在它被初始化的同一个线程上运行