我正在从R转换到Python.我刚刚开始使用熊猫.我有一个R代码很好地子集:
k1 <- subset(data, Product = p.id & Month < mn & Year == yr, select = c(Time, Product))
Run Code Online (Sandbox Code Playgroud)
现在,我想在Python中做类似的事情.这是我到目前为止所得到的:
import pandas as pd
data = pd.read_csv("../data/monthly_prod_sales.csv")
#first, index the dataset by Product. And, get all that matches a given 'p.id' and time.
data.set_index('Product')
k = data.ix[[p.id, 'Time']]
# then, index this subset with Time and do more subsetting..
Run Code Online (Sandbox Code Playgroud)
我开始觉得我这样做是错误的.或许,有一个优雅的解决方案.有人可以帮忙吗?我需要从我的时间戳中提取月份和年份并进行子集化.也许有一个单行程将完成所有这些:
k1 <- subset(data, Product = p.id & Time >= start_time & Time < end_time, select = c(Time, Product))
Run Code Online (Sandbox Code Playgroud)
谢谢.
我有一个Pandas数据帧,我想找到该数据帧中的所有唯一值...无论行/列如何.如果我有一个10 x 10的数据帧,并假设它们有84个唯一值,我需要找到它们 - 而不是计数.
我可以通过迭代数据帧的行来创建一个集合并添加每行的值.但是,我觉得它可能效率低下(不能证明这一点).有找到它的有效方法吗?有预定义的功能吗?
我刚开始使用statsmodels进行时间序列分析.我有一个包含日期和值的数据集(大约3个月).我正面临着为ARIMA模型提供正确订单的一些问题.我希望调整趋势和季节性,然后计算异常值.
我的'价值'不是固定不变的,statsmodel说我要么必须诱导平稳性,要么提供一些差异以使其有效.我玩了不同的顺序(没有深入了解改变p,q和d的后果).
当我为差异引入1时,我收到此错误:
ValueError: The start index -1 of the original series has been differenced away
Run Code Online (Sandbox Code Playgroud)
当我通过命令(例如)order =(2,0,1)删除差异时,我收到此错误:
raise ValueError("The computed initial AR coefficients are not "
ValueError: The computed initial AR coefficients are not stationary
You should induce stationarity, choose a different model order, or you can
pass your own start_params.
>>>
Run Code Online (Sandbox Code Playgroud)
任何关于如何诱导平稳性(或指向一个很好的教程的链接)的帮助都会有所帮助.而且,平稳性的测试(例如,http://www.maths.bris.ac.uk/~guy/Research/LSTS/TOS.html)将是有用的.
更新:我正在通过ADF测试阅读:
http://statsmodels.sourceforge.net/stable/generated/statsmodels.tsa.stattools.adfuller.html
Run Code Online (Sandbox Code Playgroud)
谢谢!PD.
我使用sklearn使用Kmeans进行了聚类.虽然它有一种打印质心的方法,但我觉得scikit-learn没有一种方法可以打印出每个簇的簇点(或者到目前为止我还没有看到它).是否有一种巧妙的方法来获取每个集群的集群点?
我目前有这个相当狡猾的代码来做,其中V是数据集:
def getClusterPoints(V, labels):
clusters = {}
for l in range(0, max(labels)+1):
data_points = []
indices = [i for i, x in enumerate(labels) if x == l]
for idx in indices:
data_points.append(V[idx])
clusters[l] = data_points
return clusters
Run Code Online (Sandbox Code Playgroud)
建议/链接非常感谢.
谢谢!PD.
我已经阅读了很多关于将列表列表转换为df的答案.但是,我注意到它们都具有相同的列表长度(在主要大列表中).我有一个不同的案例:
h1 <- list(USA = c(10,13,17,11), RUSSIA = NULL, BRAZIL = NULL,
CHINA = c(11,11,10,8,12), TAIWAN = c(12,9,9,11,9,12,14), CHILE = NULL)
Run Code Online (Sandbox Code Playgroud)
我想将上面的列表h1转换为data.frame.我的预期输出应该是一个包含2列的data.frame - country_name,list.像这样的东西:
country_name, list
USA [10, 13, 17, 11]
RUSSIA NULL
BRAZIL NULL
CHINA [11, 11, 10, 8, 12]
TAIWAN [12, 9, 9, 11, 9, 12, 14]
CHILE NULL
Run Code Online (Sandbox Code Playgroud)
我做了以下,但是,没有奏效:
do.call(rbind, h1)
Run Code Online (Sandbox Code Playgroud)
它试图在所有行中保持列号相同.我不要那个.我想知道如何使用ldply来处理这种情况.任何建议表示赞赏.
sklearn HashVectorizer我有两个稀疏矩阵(由两组特征创建- 每组对应一个特征)。我想将它们连接起来以便稍后使用它们进行聚类。但是,我面临尺寸问题,因为两个矩阵没有相同的行尺寸。
这是一个例子:
Xa = [-0.57735027 -0.57735027 0.57735027 -0.57735027 -0.57735027 0.57735027
0.5 0.5 -0.5 0.5 0.5 -0.5 0.5
0.5 -0.5 0.5 -0.5 0.5 0.5 -0.5
0.5 0.5 ]
Xb = [-0.57735027 -0.57735027 0.57735027 -0.57735027 0.57735027 0.57735027
-0.5 0.5 0.5 0.5 -0.5 -0.5 0.5
-0.5 -0.5 -0.5 0.5 0.5 ]
Run Code Online (Sandbox Code Playgroud)
和Xa都是Xb类型<class 'scipy.sparse.csr.csr_matrix'>。形状是Xa.shape = (6, 1048576) Xb.shape = (5, 1048576). 我得到的错误是(我现在知道为什么会发生):
X = hstack((Xa, Xb))
File "/usr/local/lib/python2.7/site-packages/scipy/sparse/construct.py", line 464, in hstack
return …Run Code Online (Sandbox Code Playgroud) 我有一本这样的字典:
d = {'Caps': 'cap_list', 'Term': 'unique_tokens', 'LocalFreq': 'local_freq_list','CorpusFreq': 'corpus_freq_list'}
Run Code Online (Sandbox Code Playgroud)
我想从中创建一个 dask 数据框。我该怎么做?通常,在 Pandas 中,可以通过以下方式轻松地将 is 导入到 Pandas df 中:
df = pd.DataFrame({'Caps': cap_list, 'Term': unique_tokens, 'LocalFreq': local_freq_list,
'CorpusFreq': corpus_freq_list})
Run Code Online (Sandbox Code Playgroud)
我应该先加载到包中,然后从包转换为 ddf 吗?
我有一个像这样的数据框:
date time userid status
1 02/25/2012 09:22:10 aabc logged_in
2 02/25/2012 09:30:10 aabc logged_out
3 02/25/2012 09:29:20 abbc logged_out
4 02/25/2012 09:27:30 abc logged_in
5 02/25/2012 09:26:29 abc login_failed
6 02/25/2012 09:26:39 abc login_failed
7 02/25/2012 09:26:52 abc login_failed
8 02/25/2012 09:27:09 abc login_failed
9 02/25/2012 09:27:20 abc login_failed
10 02/25/2012 09:24:10 abdc logged_in
11 02/25/2012 09:24:12 abdc logged_out
12 02/25/2012 09:22:10 abhc logged_in
13 02/25/2012 09:30:10 abuc logged_in
14 02/25/2012 09:30:14 abuc logged_out
15 02/25/2012 09:29:40 baa logged_in …Run Code Online (Sandbox Code Playgroud) 我有一个数据集,包含4种不同的事件类型(A,B,C,D),每天都会发生很多次.我有这么一个日志超过一年."EventType"属性是一个"因子".
例如,我的数据集如下所示:
DateTime,EventType
6/5/2013 9:35,B
6/5/2013 9:35,A
6/5/2013 9:35,B
6/5/2013 9:36,D
6/5/2013 9:39,A
6/5/2013 9:40,B
7/5/2013 9:35,B
7/5/2013 9:35,A
7/5/2013 9:35,B
7/5/2013 9:36,D
7/5/2013 9:39,A
7/5/2013 9:40,B
8/5/2013 9:35,A
8/5/2013 9:35,A
8/5/2013 9:35,B
8/5/2013 9:36,B
8/5/2013 9:39,A
8/5/2013 9:40,B
9/5/2013 9:35,B
9/5/2013 9:35,B
9/5/2013 9:35,B
9/5/2013 9:36,D
9/5/2013 9:39,A
9/5/2013 9:40,A
Run Code Online (Sandbox Code Playgroud)
我想每天绘制所有事件类型的总数.x轴:日期时间,Y轴:计数.
我喜欢尝试ddply来实现这一点,但是,我不太确定如何去做.这就是我所做的:
data <- read.csv("C:/analytics/mydata.csv", sep=",", header=TRUE)
k <- ddply(data, "data$DateTime", function(x) count = nrow(x))
Run Code Online (Sandbox Code Playgroud)
以上给出了以下输出:
data$DateTime V1
1 6/5/2013 9:35,A 1
2 6/5/2013 9:35,B 2
3 6/5/2013 9:36,D …Run Code Online (Sandbox Code Playgroud) 我有一个配置文件,其中包含一个以制表符分隔的字符串.我想检索该字符串,然后将其转换为一个很好的列表.但是,当我直接在iPython上做这件事时,我看到了一些我看不到的有趣的东西.
[myvars]
myString = "a\tb\tc\td"
.....
.....<many more variables>
Run Code Online (Sandbox Code Playgroud)
我的Python代码有这个:
param_dict = dict(config.items(myvars))
str1 = param_dict["myString"]
print str1
print str1.split()
Run Code Online (Sandbox Code Playgroud)
它打印出来:
"a\tb\tc\td"
['"a\\tb\\tc\\td"']
Run Code Online (Sandbox Code Playgroud)
但是,当我在我的python控制台上做同样的事情时,我得到了我的期望:
Python 2.7.6 (default, Mar 22 2014, 22:59:38)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> "a\tb\tc\td".split()
['a', 'b', 'c', 'd']
>>> k = "a\tb\tc\td"
>>> k.split()
['a', 'b', 'c', 'd']
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?有人可以帮我吗?我无法更改配置文件变量的格式.而且,我想把变量拿出来并剥离成一个很好的列表.
谢谢.
python ×6
pandas ×3
r ×3
dataframe ×2
plyr ×2
scikit-learn ×2
count ×1
dask ×1
data.table ×1
grouping ×1
k-means ×1
list ×1
scipy ×1
split ×1
statsmodels ×1
subset ×1
time-series ×1