小编and*_*rew的帖子

创建大型Pandas DataFrames:preallocation vs append vs concat

在构建庞大的数据帧块时,我对Pandas的性能感到困惑.在Numpy中,我们(几乎)总是通过预先分配一个大的空数组然后填充值来看到更好的性能.据我所知,这是因为Numpy立刻抓住了所需的所有内存,而不必为每次append操作重新分配内存.

在Pandas中,我似乎通过使用df = df.append(temp)模式获得了更好的性能.

这是一个时间示例.Timer该类的定义如下.正如您所见,我发现预分配比使用速度慢大约10倍append!使用np.empty适当的dtype值预分配数据帧有很大帮助,但该append方法仍然是最快的.

import numpy as np
from numpy.random import rand
import pandas as pd

from timer import Timer

# Some constants
num_dfs = 10  # Number of random dataframes to generate
n_rows = 2500
n_cols = 40
n_reps = 100  # Number of repetitions for timing

# Generate a list of num_dfs dataframes of random values
df_list = [pd.DataFrame(rand(n_rows*n_cols).reshape((n_rows, n_cols)), columns=np.arange(n_cols)) for i in np.arange(num_dfs)] …
Run Code Online (Sandbox Code Playgroud)

python pandas

28
推荐指数
3
解决办法
2万
查看次数

Spark阅读python3 pickle作为输入

我的数据以Python 3 pickle文件集的形式提供.其中大多数是熊猫的序列化DataFrames.

我想开始使用Spark,因为我需要一台计算机可以拥有的更多内存和CPU.此外,我将使用HDFS进行分布式存储.

作为初学者,我没有找到解释如何使用pickle文件作为输入文件的相关信息.

它存在吗?如果没有,有任何解决方法吗?

非常感谢

python serialization apache-spark rdd pyspark

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

使用非默认密钥名称(id_rsa除外)

我已将Github无密码登录设置如下.

ssh-keygen -t rsa  -P ''  
cat .ssh/id_rsa.pub  |xclip 
Run Code Online (Sandbox Code Playgroud)

我将公钥粘贴到Github网站上的ssh和gpg密钥中.

git init  
git config --global user.name "someone"  
git config --global user.email  "sbd@gmail.com"  
git config remote.origin.url git+ssh://git@github.com/someone/newstart.git  
ssh -T git@github.com  
git clone  git+ssh://git@github.com/someone/newstart.git   /tmp/newstart
Run Code Online (Sandbox Code Playgroud)

以上工作.

现在我想为Github使用不同的键名,而不是默认名称id_rsa.

ssh-keygen -t rsa  -P ''  -f  .ssh/id_rsa.github
cat .ssh/id_rsa.github.pub  |xclip 
Run Code Online (Sandbox Code Playgroud)

我将新的pub密钥粘贴到Github网站上的ssh和gpg密钥中.

git init  
git config --global user.name "someone"  
git config --global user.email  "sbd@gmail.com"  
git config remote.origin.url git+ssh://git@github.com/someone/newstart.git  
ssh -T git@github.com 
Run Code Online (Sandbox Code Playgroud)

以上不起作用.

git clone  git+ssh://git@github.com/someone/newstart.git   /tmp/newstart
Run Code Online (Sandbox Code Playgroud)

以上也行不通.

ssh -i .ssh/id_rsa.github …
Run Code Online (Sandbox Code Playgroud)

git ssh github

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

对散点图; 一对多

有没有一种简约的方法来创建一个pairs只将一个变量与其他变量进行比较的情节?换句话说,我可以在pairs不使用循环的情况下仅绘制标准散点图矩阵的一行或一列吗?

r

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

交互式Python - 相对导入的解决方案

来自Python 的十亿次相对导入

  • 为了使from .. import模块正常工作,模块名称的点数必须至少与语句中的点数一样多import
  • ...如果您以交互方式运行解释器...该交互式会话的名称是__main__
  • 因此,您不能直接从交互式会话中进行相对导入

我喜欢在编写生产代码之前使用交互式 Jupyter Notebook 会话来探索数据和测试模块。为了让事情变得清晰易懂,让队友可以理解,我喜欢将笔记本放在一个interactive包中,与我正在测试的包和模块并排放置。

package/

    __init__.py

    subpackage1/

        __init__.py

        moduleX.py

        moduleY.py

        moduleZ.py

    subpackage2/

        __init__.py

        moduleZ.py

    interactive/
        __init__.py
        my_notebook.ipynb
Run Code Online (Sandbox Code Playgroud)

在交互式会话期间interactive.my_notebook.ipynb,您将如何导入其他模块,例如subpackage1.moduleXsubpackage2.moduleZ

python ipython python-2.7 jupyter-notebook

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

Python:如何使用 Plotly 叠加直方图

我在不同的列表中有两组数据。每个列表元素的值从 0:100 开始,并且元素重复。

例如:
first_data = [10,20,40,100,...,100,10,50]
second_data = [20,50,50,10,...,70,10,100]

我可以使用以下方法在直方图中绘制其中之一:

import plotly.graph_objects as go
.
.
.

fig = go.Figure()
fig.add_trace(go.Histogram(histfunc='count', x=first_data))
fig.show()
Run Code Online (Sandbox Code Playgroud)

通过设置histfunc'count',我的直方图由从 0 到 100 的 x 轴和表示 中重复元素数量的条形组成first_data

我的问题是:如何使用相同的“计数”直方图将第二组数据叠加在同一轴上?

python graph histogram python-3.x plotly

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