小编use*_*925的帖子

蟒蛇熊猫时间序列年提取

我有一个包含时间戳的DF:

0     2005-08-31 16:39:40
1     2005-12-28 16:00:34
2     2005-10-21 17:52:10
3     2014-01-28 12:23:15
4     2014-01-28 12:23:15
5     2011-02-04 18:32:34
6     2011-02-04 18:32:34
7     2011-02-04 18:32:34
Run Code Online (Sandbox Code Playgroud)

我想从每个时间戳中提取年份,在DF中创建如下所示的附加列:

0     2005-08-31 16:39:40 2005
1     2005-12-28 16:00:34 2005
2     2005-10-21 17:52:10 2005
3     2014-01-28 12:23:15 2014
4     2014-01-28 12:23:15 2014
5     2011-02-04 18:32:34 2011
6     2011-02-04 18:32:34 2011
7     2011-02-04 18:32:34 2011
Run Code Online (Sandbox Code Playgroud)

显然,我可以查看所有DF条目,删除日期的前4个字符.哪个很慢.我想知道是否有一种快速的python方式来做到这一点.我看到可以通过DF = pd.to_datetime(DF,'%Y-%m-%d%H:%M:%S')将列转换为日期时间格式,但是当我尝试然后应用datetime时. datetime.year(DF)它不起作用.我还需要将时间戳解析为几个月和几年的组合等等......请帮助.谢谢.

python datetime parsing dataframe pandas

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

带有绑定值的python itertools排列

我想找到一个有绑定值的向量的有效排列.

例如,如果perm_vector = [0,0,1,2]我想获得输出的所有组合[0,0,1,2], [0,0,2,1], [0,1,2,0]等等,但我不想获得[0,0,1,2]两次,这是标准itertools.permutations(perm_vector)给出的.

我试过以下但是当它perm_vector grows在len 时它真的很慢:

vectors_list = []
for it in itertools.permutations(perm_vector):
    vectors_list.append(list(it))
df_vectors_list  = pd.DataFrame( vectors_list)
df_gb = df_vectors_list.groupby(list(df_vectors_list.columns)) 
vectors_list = pd.DataFrame(df_gb.groups.keys()).T
Run Code Online (Sandbox Code Playgroud)

实际上,问题是更加普遍的"加速"性质.主要时间用于创建长向量的排列 - 即使没有两面性,创建12个唯一值的向量的排列也需要"无穷大".是否有可能迭代地调用itertools而不访问整个排列数据但是处理它的串?

python performance python-itertools pandas

6
推荐指数
1
解决办法
373
查看次数

正态分布概率密度可以大于1吗?...基于python代码检查

我有一个问题:给定均值和方差,我想使用正态分布作为概率基础来计算样本的概率。数字是:

mean = -0.546369
var = 0.006443
curr_sample = -0.466102

prob = 1/(np.sqrt(2*np.pi*var))*np.exp( -( ((curr_sample - mean)**2)/(2*var) ) )
Run Code Online (Sandbox Code Playgroud)

我得到的概率大于 1!我得到概率 = 3.014558...

是什么原因造成的?方差太小会导致事情变得混乱吗?这是公式中完全合法的输入,并且应该给出不大于 1 的小值!有什么建议么?

python statistics probability

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

Python:快速/高效地实现Kullback Leibler散度,用于多个分布计算

我有以下问题:我有一个20K离散分布矩阵(直方图),我需要计算这些对之间的KL分歧(KLD).这样做的简单方法是使用两个for循环并通过标准KLD计算在每两个分布之间计算KLD.这需要时间.很多的时间.我想知道有一种基于矩阵/数组的计算方法.当然,我不是第一个遇到这个问题的人.不幸的是我是python的新手.任何帮助将不胜感激.谢谢!一个.

python algorithm statistics performance histogram

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