首页 > 解决方案 > 如何对多个属性(列)进行日志转换 - Python

问题描述

我有一个包含 2 列的数据集,它们的比例完全不同。

我需要对两列进行日志转换,以便能够对它们进行一些可视化。

我找不到允许我在多个列上进行日志转换的 python 代码。

有谁能够帮助我?

我有一个包含定性和定量列的数据集,我希望在 RealizedPL 和 Volume 列上进行日志记录。

我的数据集看起来有点像这样:

     Date           Name       Country     Product     RealizedPL     Volume
0    2019.01.01     Charles    Country1    ProductA      100           10200
1    2019.02.20     Pierre     Country2    ProductB      150           20500
2    2019.03.02     Chiara     Country1    ProductA      200           15300

如何进行日志转换并保留其他列?通过为日志创建新列或直接用日志替换列。

谢谢

标签: pythonloggingscikit-learnnormalizationtransformation

解决方案


您可以FunctionTransformer在 scikit learn 中使用它,只需选择要应用转换的列。第二步,您可以将这些转换后的列添加到原始数据框中。

在一个虚拟示例中,它看起来像这样:

import pandas as pd
import numpy as np
from sklearn.preprocessing import FunctionTransformer

df = pd.DataFrame({"a": [1, 2, 3], "b": [3, 44, 2], "c": [4, 4, 3]})
transformer = FunctionTransformer(np.log)

df[["a_log", "b_log"]] = transformer.fit_transform(df[["a", "b"]])

推荐阅读