Python 如何在数据框架中直接在PDF上计算统计指标?
假设我已经有一个PDF(概率密度函数)在熊猫数据帧中Python 如何在数据框架中直接在PDF上计算统计指标?,python,pandas,numpy,scipy,data-analysis,Python,Pandas,Numpy,Scipy,Data Analysis,假设我已经有一个PDF(概率密度函数)在熊猫数据帧中 import pandas as pd import numpy as np from scipy import stats df = pd.DataFrame([1,2,3,4,5,6,5,4,3,2], index=np.linspace(21,30,10), columns=['days']) df.index.names=['temperature'] print(df) days temperature
import pandas as pd
import numpy as np
from scipy import stats
df = pd.DataFrame([1,2,3,4,5,6,5,4,3,2], index=np.linspace(21,30,10), columns=['days'])
df.index.names=['temperature']
print(df)
days
temperature
21.0 1
22.0 2
23.0 3
24.0 4
25.0 5
26.0 6
27.0 5
28.0 4
29.0 3
30.0 2
如果我想计算像偏度这样的指标,我必须将PDF转换回原始数据,如下所示:
temp_history = []
for i in df.iterrows():
temp_history += i[1][0] * [i[0]]
print(temp_history)
[21.0, 22.0, 22.0, 23.0, 23.0, 23.0, 24.0, 24.0, 24.0, 24.0, 25.0, 25.0, 25.0, 25.0, 25.0, 26.0, 26.0, 26.0, 26.0, 26.0, 26.0, 27.0, 27.0, 27.0, 27.0, 27.0, 28.0, 28.0, 28.0, 28.0, 29.0, 29.0, 29.0, 30.0, 30.0]
skew = stats.skew(temp_history)
我是否可以在不必创建temp\u历史记录的情况下计算指标?谢谢
编辑:我想避免以任何形式创建原始数据的原因是,我不想仅仅当天
列中的数字变大时,就丢失一大块内存。使用-
df.reindex(df.index.repeat(df['days'])).reset_index()['temperature'].skew()
或
要坚持原来的实现-
stats.skew(df.reindex(df.index.repeat(df['days'])).reset_index()['temperature'])
如果您想知道为什么输出不匹配,我们将对此进行讨论
为了匹配两者,请在stats.skew()
中设置bias=False
,非常感谢!所以我想真的没有办法直接在pdf数据框架上计算度量?我唯一担心的是,当“天”中的数字变得非常大时,性能可能会受到影响。