我想将带有applymap
和np2.log2
的log2应用于数据并使用boxplot显示,这是我编写的代码:
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
data = pd.read_csv('testdata.csv')
df = pd.DataFrame(data)
################################
# a.
df.boxplot()
plt.title('Raw Data')
################################
# b.
df.applymap(np.log2)
df.boxplot()
plt.title('Normalized Data')
以下是我为RAW数据获得的箱线图,这是好的,但我在应用log2转换后得到了相同的箱图!任何人都可以请告诉我我做错了什么,应该纠正什么来获得applymap和np.log2的规范化数据
答案 0 :(得分:4)
很多更快的方法是:
df = np.log2(df)
不要忘记将结果分配回df
。
答案 1 :(得分:1)
根据API Reference DataFrame.applymap(func)
将函数应用于要运行的DataFrame 元素,即喜欢为每个系列做map(func,series) 数据帧
它不会更改您获取返回值所需的DataFrame
并使用它。
答案 2 :(得分:0)
Pandas 现在具有 transform() 函数,在您的情况下相当于:
df = df.transform(lambda x: np.log2(x))