我有一个大型的pandas数据框,大约有80列.数据框中的80列中的每一列都报告网站的每日流量统计信息(列是网站).
由于我不想使用原始流量统计信息,我更喜欢规范化所有列(第一列除外,即日期).从0到1或(甚至更好)从0到100.
Date A B ...
10/10/2010 100.0 402.0 ...
11/10/2010 250.0 800.0 ...
12/10/2010 800.0 2000.0 ...
13/10/2010 400.0 1800.0 ...
Run Code Online (Sandbox Code Playgroud)
话虽如此,我想知道适用哪种规范化.Min-Max缩放与z-Score规范化(标准化)?我的一些专栏有很强的异常值.有一个例子会很棒.很抱歉无法提供完整的数据.
我有几个当前包含所有月末数据的数据框。
我现在使用以下脚本导入财务数据:
import csv
import pandas as pd
import numpy as np
import urllib.request
urllib.request.urlretrieve(
'http://chart.finance.yahoo.com/table.csv?s=^GSPC&a=4&b=1&c=2013&d=5&e=1&f=2016&g=m&ignore=.csv',
'gspc.csv'
)
table = pd.read_csv('gspc.csv')
Date Open High Low Close Volume Adj Close
49 2012-05-01 1,398 1,415 1,292 1,310 4158095900 1,310
48 2012-06-01 1,310 1,363 1,267 1,362 4103472300 1,362
47 2012-07-02 1,362 1,392 1,325 1,379 3663113300 1,379
Run Code Online (Sandbox Code Playgroud)
正如我所说,我需要将这些数据放到月末。IE
Date Open High Low Close Volume Adj Close
49 2012-05-31 1,398 1,415 1,292 1,310 4158095900 1,310
48 2012-06-30 1,310 1,363 1,267 1,362 4103472300 1,362
47 2012-07-31 …Run Code Online (Sandbox Code Playgroud) 我们可以使用以下代码在 R 中绘制和分解时间序列:
# Monthly Airline Passenger Numbers 1949-1960
data(AirPassengers)
data = data.frame(AirPassengers)
data
#Transform to time series
ts.data1 = ts(data=as.vector(t(data['AirPassengers'])), start = c(1949), end = c(1960), frequency=12)
#Plot seasonality, trend
plot(stl(ts.data1, "periodic"))
plot(ts.data1)
decomposed <- stl(ts.data1, s.window="periodic")
seasonal <- decomposed$time.series[,1]
trend <- decomposed$time.series[,2]
remainder <- decomposed$time.series[,3]
#Show seasonal effect
seasonal
Run Code Online (Sandbox Code Playgroud)
现在我的问题是:为了淡化,我可以简单地输入
# deseasonalize time sereis
ts.data1 <- ts.data1 - seasonal
ts.data1
plot(ts.data1)
Run Code Online (Sandbox Code Playgroud)
减去季节性值?
我意识到在另一个数据集中,减去季节性值会导致负值。这就是为什么我认为使用一个因子或其他东西会更好。
注意:我不想使用“deseasonalize”包。
我目前使用以下脚本来创建中介中心性图:
plot(g,
rescale = FALSE,
edge.color= edge_color,
edge.width=E(g)$Weight*0.5,
vertex.size= degree(g)*0.5,
main="Degree Centrality"
)
Run Code Online (Sandbox Code Playgroud)
如您所见,我目前使用一个简单的乘数来调整 vertex.size. 由于有些节点真的很大,有些看起来太小,我想设置一个最小和最大大小的范围。当然,这个范围应该考虑度(g)。
这有可能吗?
注意:尝试使用scale (degree(g), 5, 15)或类似方法无效:“符号错误(x = coords[, 1], y = coords[, 2], bg = vertex.color, : invalid symbol parameter”