小编use*_*931的帖子

子集化Python DataFrame

我正在从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)

谢谢.

python subset pandas

56
推荐指数
3
解决办法
15万
查看次数

在Pandas数据框中查找唯一值,无论行或列位置如何

我有一个Pandas数据帧,我想找到该数据帧中的所有唯一值...无论行/列如何.如果我有一个10 x 10的数据帧,并假设它们有84个唯一值,我需要找到它们 - 而不是计数.

我可以通过迭代数据帧的行来创建一个集合并添加每行的值.但是,我觉得它可能效率低下(不能证明这一点).有找到它的有效方法吗?有预定义的功能吗?

python dataframe pandas

50
推荐指数
2
解决办法
9万
查看次数

Python Statsmodel ARIMA开始[平稳性]

我刚开始使用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.

python time-series statsmodels

10
推荐指数
1
解决办法
3976
查看次数

KMeans聚类后的聚类点(scikit learn)

我使用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.

python k-means scikit-learn

9
推荐指数
1
解决办法
2万
查看次数

R中data.frame的长度不同的列表列表

我已经阅读了很多关于将列表列表转换为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来处理这种情况.任何建议表示赞赏.

r list dataframe

5
推荐指数
1
解决办法
7479
查看次数

堆叠两个不同维度的稀疏矩阵

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)

python scipy sparse-matrix scikit-learn

5
推荐指数
1
解决办法
2322
查看次数

从字典创建 dask 数据框

我有一本这样的字典:

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 吗?

pandas dask

5
推荐指数
1
解决办法
5176
查看次数

在R中的字符串字段上分组

我有一个像这样的数据框:

         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)

grouping r plyr data.table

4
推荐指数
1
解决办法
166
查看次数

每个日期时间R的事件数

我有一个数据集,包含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)

r count plyr

4
推荐指数
1
解决办法
7724
查看次数

Python从配置文件中删除一个字符串

我有一个配置文件,其中包含一个以制表符分隔的字符串.我想检索该字符串,然后将其转换为一个很好的列表.但是,当我直接在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 split

3
推荐指数
1
解决办法
105
查看次数