小编Ale*_*s G的帖子

DataFrame在函数内部进行了修改

我面对一个我以前从未观察过的函数内部数据框的修改.有没有办法处理这个并且没有修改初始数据帧?

In[30]: def test(df):
    df['tt'] = np.nan
    return df

In[31]: dff = pd.DataFrame(data=[])

In[32]: dff

Out[32]: 
Empty DataFrame
Columns: []
Index: []
In[33]: df = test(dff)

In[34]: dff

Out[34]: 
Empty DataFrame
Columns: [tt]
Index: []
Run Code Online (Sandbox Code Playgroud)

python pandas

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

Matplotlib简单案例内存泄漏与熊猫

我必须使用不同的数据在1到500的循环中绘制并保存plot,但由于Matplot lib而导致内存泄漏.有人知道如何处理这个问题吗?

这里的简单案例:

import sys
import gc
import numpy as np
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import pandas as pd

pdindex = pd.date_range(start='01/01/2013', freq='15min', end='01/01/2019')
df = pd.DataFrame({'test':np.random.normal(0,1,len(pdindex))}, index=pdindex)


def memplot_plot(df, i):
    df.test.plot()    
    plt.title('graph' + str(i))
    plt.savefig(str(i) + '.png', dpi=144)
    plt.close() 

for i in range(1, 100):
    print '*******************************'
    print 'i : ' + str(i)    
    print  len( gc.get_objects())
    print sys.getsizeof(gc.get_objects())
    memplot_plot(df, i)    
    gc.collect()
Run Code Online (Sandbox Code Playgroud)

输出是(i = 6时的内存错误):

*******************************
i : 1
74682
325680
*******************************
i : 2
290627
1190248
******************************* …
Run Code Online (Sandbox Code Playgroud)

python memory-leaks matplotlib python-2.7 pandas

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

dateutil/zoneinfo上的错误3使用cx_freeze和pandas

当我尝试使用cx_freeze编译hello.py文件时,我得到pandas 0.15.2的以下错误,但0.15.1没有错误.

有人知道如何纠正它吗?

我已经使用include_files函数包含dateutil/zoneinfo文件,但问题仍然存在.

hello.py:

import numpy as np
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
print 'hello world'
df_dates = pd.date_range(start='01/01/2013', freq='H', periods=100)
df = pd.DataFrame(range(len(df_dates)), index=df_dates)
print df
print df.info()
df.plot()
plt.savefig('test.png')
plt.show(block=False)
Run Code Online (Sandbox Code Playgroud)

setup.py:

includes = ['dateutil.zoneinfo', 'pandas']  # nommer les modules non trouves par cx_freeze
excludes = []
packages = ['os', 'matplotlib.backends.backend_qt4agg', 'dateutil', 'dateutil.zoneinfo', 'pandas']

# copier les fichiers non-Python et/ou repertoires et leur contenu:

def include_files():
        path_base = "C:\\Anaconda\\Lib\\site-packages\\dateutil\\zoneinfo\\"
        skip_count = len(path_base) 
        zip_includes …
Run Code Online (Sandbox Code Playgroud)

python cx-freeze pandas python-dateutil

6
推荐指数
0
解决办法
779
查看次数

SQLAlchemy通过Paramiko SSH

我在服务器上有一个数据库,我需要通过SSH访问.现在我通过使用命令行来获取数据来处理数据库.

import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='XX.XX.XX', username='user', password='pass', port = YYY)
query = "mysql -u " + username_sql + " -p" + password_sql +" dbb -e \"" + sql_query + "\""
ssh.exec_command(query.decode('string_escape'))
ssh.close()
Run Code Online (Sandbox Code Playgroud)

有没有办法用SQLAlchemy来提高效率,所以我可以直接使用pandas DataFrames?

from sqlalchemy import create_engine
engine = create_engine(
       "mysql://username_sql:password_sql@localhost/dbb")
Run Code Online (Sandbox Code Playgroud)

python mysql ssh sqlalchemy paramiko

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

Paramiko ssh 死/挂,输出大

我尝试使用 Paramiko 和 ssh 来备份服务器以调用tar命令。当文件数量有限时,一切正常,但当文件夹很大时,脚本会无休止地等待。下面的测试告诉我问题出在标准输出的大小上。

有没有办法纠正它并执行这种命令?

案例大输出:

query = 'cd /;ls -lshAR -h'
chan.exec_command(query)
while not chan.recv_exit_status():
    if chan.recv_ready():
        data = chan.recv(1024)
        while data:
            print data
            data = chan.recv(1024)

    if chan.recv_stderr_ready():
        error_buff = chan.recv_stderr(1024)
        while error_buff:
            print error_buff
            error_buff = chan.recv_stderr(1024)
    exist_status = chan.recv_exit_status()
    if 0 == exist_status:
        break
Run Code Online (Sandbox Code Playgroud)

结果是(不行 - 阻止 - 死??)

query = 'cd /;ls -lshAR -h'
chan.exec_command(query)
while not chan.recv_exit_status():
    if chan.recv_ready():
        data = chan.recv(1024)
        while data:
            print data
            data = chan.recv(1024)

    if chan.recv_stderr_ready(): …
Run Code Online (Sandbox Code Playgroud)

python ssh paramiko

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

要安装的Gem错误

我尝试安装rails但我遇到以下错误.

有人知道如何解决它吗?

C:\Users\Utilisateur>gem -v
2.0.14

C:\Users\Utilisateur>gem install rails
ERROR:  Could not find a valid gem 'rails' (>= 0), here is why:
          Unable to download data from https://rubygems.org/ - no such name (htt
ps://rubygems.org/latest_specs.4.8.gz)

C:\Users\Utilisateur>gem install rails --source http://rubygems.org
ERROR:  Could not find a valid gem 'rails' (>= 0), here is why:
          Unable to download data from https://rubygems.org/ - no such name (htt
ps://rubygems.org/latest_specs.4.8.gz)
          Unable to download data from http://rubygems.org/ - no such name (http
://rubygems.org/latest_specs.4.8.gz)
Run Code Online (Sandbox Code Playgroud)

ruby gem ruby-on-rails

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

多索引和时区 - 冻结列表错误

我尝试更改多索引DataFrame的时区但是我得到一个冻结列表错误.有人知道怎么办吗?

>>> array = [('s001', d) for d in pd.date_range(start='01/01/2014', end='01/01/2015', freq='H')] + [('s002', d) for d in pd.date_range(start='01/01/2014', end='01/01/2015', freq='H')]
>>> index = pd.MultiIndex.from_tuples(array, names=['sce', 'DATES'])
>>> df = pd.DataFrame(np.random.randn(len(index)), index=index)

>>> df.index.levels[1] = df.index.levels[1].tz_localize('Etc/GMT-1', ambiguous = 'NaT')
Run Code Online (Sandbox Code Playgroud)

回溯(最近一次调用最后一次):File"C:\ Pythons\lib\python\pandas-0.15.0rc1-py2.7-win32.egg\pandas\core\base.py"中的文件"",第1行,第221行,在_disabled self中.上课.name)TypeError:'FrozenList'不支持可变操作.

python multi-index pandas

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

随机过程的循环优化

由于我将这段代码调用了1000多次,有没有办法优化这段代码需要1.73秒?

def generate():
    S0    = 0
    T     = 1.
    nt    = 100000
    lbd   = 500.
    mu    = 0
    sigma = 1.

    dt = T/nt
    St  = [S0]  * nt
    sqrtdt = np.sqrt(dt)
    dBt = np.random.normal(0, sqrtdt, nt)

    for k in xrange(1, nt):
        dSt = lbd * (mu - St[k-1]) * dt + sigma * dBt[k]
        St[k] = St[k-1] + dSt
    return St
Run Code Online (Sandbox Code Playgroud)

python optimization performance

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