小编her*_*lla的帖子

什么是上传一个很大的CSV文件笔记本蟒蛇大熊猫工作的最快方法?

我正在尝试上传一个250MB的csv文件.基本上有400万行和6列时间序列数据(1分钟).通常的程序是:

location = r'C:\Users\Name\Folder_1\Folder_2\file.csv'
df = pd.read_csv(location)
Run Code Online (Sandbox Code Playgroud)

这个过程大约需要20分钟!!! 非常初步我已经探索了以下选项

我想知道是否有人比较了这些选项(或更多)并且有明显的赢家.如果没有人回答,将来我会发布我的结果.我现在没有时间.

python csv dataframe pandas

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

在Python中如何获取dict的局部视图?

是否有可能获得dict类似于pandas的Python 的部分视图df.tail()/df.head().假设你有一个很长的dict,你只想检查一些元素(开头,结尾等)dict.就像是:

dict.head(3)  # To see the first 3 elements of the dictionary.

{[1,2], [2, 3], [3, 4]}
Run Code Online (Sandbox Code Playgroud)

谢谢

python dictionary python-2.7

24
推荐指数
5
解决办法
2万
查看次数

是否有一种pythonic方式在熊猫中做一个列联表?

给定一个如下所示的数据框:

            A   B      
2005-09-06  5  -2  
2005-09-07 -1   3  
2005-09-08  4   5 
2005-09-09 -8   2
2005-09-10 -2  -5
2005-09-11 -7   9 
2005-09-12  2   8  
2005-09-13  6  -5  
2005-09-14  6  -5  
Run Code Online (Sandbox Code Playgroud)

是否有pythonic方法来创建像这样的2x2矩阵:

    1  0
 1  a  b
 0  c  d
Run Code Online (Sandbox Code Playgroud)

哪里:

a =列数A和B的相应元素均为正数.

b =列A的相应元素在B列中为正和负的obs数.

c =列A中相应元素为负且在B列中为正的obs数.

d =列数A和B的相应元素均为负数的obs数.

对于此示例,输出将是:

    1  0
 1  2  3
 0  3  1
Run Code Online (Sandbox Code Playgroud)

谢谢

python dataframe python-2.7 pandas

24
推荐指数
4
解决办法
2万
查看次数

如何正确地将时间添加到pandas.tseries.index.DatetimeIndex?

我有一个正常的df.index,我想补充几个小时.

In [1]: test[1].index
Out[2]: 
<class 'pandas.tseries.index.DatetimeIndex'>
[2010-03-11, ..., 2014-08-14]
Length: 52, Freq: None, Timezone: None
Run Code Online (Sandbox Code Playgroud)

这是第一个元素的样子:

In [1]: test[1].index[0]
Out[2]: Timestamp('2010-03-11 00:00:00')
Run Code Online (Sandbox Code Playgroud)

所以我试着添加小时:

In [1]: test[1].index[0] + pd.tseries.timedeltas.to_timedelta(16, unit='h')
Run Code Online (Sandbox Code Playgroud)

但是我得到了这个:

Out[2]: Timestamp('2010-03-11 00:00:00.000000016')
Run Code Online (Sandbox Code Playgroud)

但我想得到这个:

Out[2]: Timestamp('2010-03-11 16:00:00')
Run Code Online (Sandbox Code Playgroud)

我错过了什么?环境是Anaconda(最新)Python 2.7.7,iPython 2.2

非常感谢

python indexing time-series dataframe pandas

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

如何构建一个在jupyter笔记本中使用的GUI?

我们的想法是能够在笔记本中构建和使用GUI,因此使用具有大量参数的长函数比仅在笔记本中键入字符更有效.

显然不具体,但如果有人可以指出一些可能有帮助的库,项目,链接或任何资源.

python user-interface python-3.x jupyter jupyter-notebook

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

如何在熊猫中选择"本月最后一个工作日"?

我正在尝试在一个月的最后一个条件下对DataFrame进行子集化.我用了:

df['Month_End'] = df.index.is_month_end
sample = df[df['Month_End'] == 1]
Run Code Online (Sandbox Code Playgroud)

这是有效的,但我正在处理股票市场数据,因此我错过了实际月末在周末的所有实例,我需要一种方法来选择"月中的最后一个工作日".

python datetime time-series dataframe pandas

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

如何在pandas中创建多级数据框?

给出两个不同的df:

'一个'

            a  b         
2016-11-21  2  1
2016-11-22  3  4
2016-11-23  5  2 
2016-11-24  6  3 
2016-11-25  6  3
Run Code Online (Sandbox Code Playgroud)

'B'

            a  b         
2016-11-21  3  0
2016-11-22  1  0
2016-11-23  1  6 
2016-11-24  1  5 
2016-11-25  0  2
Run Code Online (Sandbox Code Playgroud)

如何创建此形状的"多级"数据框:

'C'

            A     B
            a  b  a  b           
2016-11-21  2  1  3  0
2016-11-22  3  4  1  0
2016-11-23  5  2  1  6
2016-11-24  6  3  1  5
2016-11-25  6  3  0  2
Run Code Online (Sandbox Code Playgroud)

*index是'datatime'对象

谢谢

python dataframe multi-level python-2.7 pandas

7
推荐指数
2
解决办法
4423
查看次数

使用rolling_apply和一个在Pandas中需要2个参数的函数

我正在尝试使用rollapply与需要2个参数的公式.据我所知,唯一的方法(除非你从头开始创建公式)来计算kendall tau相关性,包括标准的平局修正是:

>>> import scipy
>>> x = [5.05, 6.75, 3.21, 2.66]
>>> y = [1.65, 26.5, -5.93, 7.96]
>>> z = [1.65, 2.64, 2.64, 6.95]
>>> print scipy.stats.stats.kendalltau(x, y)[0]
0.333333333333
Run Code Online (Sandbox Code Playgroud)

我也知道rollapply的问题并采取两个参数,如下所述:

尽管如此,我仍在努力寻找一种方法来对具有多列的数据帧进行kendalltau计算.

我的数据框是这样的

A = pd.DataFrame([[1, 5, 1], [2, 4, 1], [3, 3, 1], [4, 2, 1], [5, 1, 1]], 
                 columns=['A', 'B', 'C'], index = [1, 2, 3, 4, 5])
Run Code Online (Sandbox Code Playgroud)

试图创建一个这样做的功能

In [1]:function(A, 3)  # A is df, 3 is the rolling window
Out[2]:
   A  B …
Run Code Online (Sandbox Code Playgroud)

python numpy scipy dataframe pandas

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

如何删除Pandas数据帧索引的'秒'?

给定具有时间序列的数据框,如下所示:

                      Close
2015-02-20 14:00:00  1200.1
2015-02-20 14:10:00  1199.8
2015-02-21 14:00:00  1199.3
2015-02-21 14:10:00  1199.0
2015-02-22 14:00:00  1198.4
2015-02-22 14:10:00  1199.7
Run Code Online (Sandbox Code Playgroud)

我怎样才能摆脱索引的'秒',看起来像这样:

                   Close
2015-02-20 14:00  1200.1
2015-02-20 14:10  1199.8
2015-02-21 14:00  1199.3
2015-02-21 14:10  1199.0
2015-02-22 14:00  1198.4
2015-02-22 14:10  1199.7
Run Code Online (Sandbox Code Playgroud)

谢谢

python time-series dataframe pandas

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

如何加快Pandas中的重采样过程?

假设您有一个1分钟时间序列的数据框,其中包含索引,4列和400万行。当您尝试执行以下操作时:

 conversion = {'Open': 'first', 'High': 'max', 'Low': 'min', 'Close': 'last'}
 df1 = df.resample('5Min', how=conversion)
Run Code Online (Sandbox Code Playgroud)

这花费了荒谬的时间(20-30分钟)。我如何加快这个过程?

熊猫18,Python 2.7

python resampling dataframe python-2.7 pandas

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