您知道如何将DataFrame的索引或列作为NumPy数组或python列表获取吗?
是否可以附加到不包含任何索引或列的空数据框?
我试图这样做,但最后继续得到一个空的数据帧.
例如
df = pd.DataFrame()
data = ['some kind of data here' --> I have checked the type already, and it is a dataframe]
df.append(data)
Run Code Online (Sandbox Code Playgroud)
结果如下:
Empty DataFrame
Columns: []
Index: []
Run Code Online (Sandbox Code Playgroud) 说我有一堆测试:
def test_func_one():
...
def test_func_two():
...
def test_func_three():
...
Run Code Online (Sandbox Code Playgroud)
是否有一个装饰器或类似的东西,我可以添加到函数,以防止py.test只运行该测试?结果可能看起来像......
@pytest.disable()
def test_func_one():
...
def test_func_two():
...
def test_func_three():
...
Run Code Online (Sandbox Code Playgroud)
我在py.test文档中搜索过类似的内容,但我想我可能会在这里遗漏一些东西.
我花了一些时间搜索interwebs对于这个答案,我曾尝试寻找所有SO的答案也一样,但我觉得我没有正确的术语下来......请原谅我,如果这是一个重复一些已知的问题,我很乐意删除我的帖子并转而参考该帖子!
无论如何,我试图在Matplotlib中的同一个图上绘制两个直方图.我的两个数据源是500个元素长的列表.为了说明我面临的问题,请看下图:

如您所见,直方图在默认参数下具有不均匀的箱尺寸,即使箱的数量相同.我想保证两个直方图的bin宽度是相同的.有什么方法可以做到这一点吗?
提前致谢!
我一直想知道是否可以在Jupyter笔记本中运行PyPy.我最近尝试在我的本地机器上安装PyPy,它运行得非常好 - 在用纯Python编写的基于代理的模拟中,速度提高了100倍.但是,我想念Jupyter笔记本中的交互性.是否有可能使IPython内核使用PyPy而不是CPython?
Docker 的文档指出卷可以“迁移”——我假设这意味着我应该能够将卷从一台主机移动到另一台主机。(非常乐意在这一点上得到纠正。)但是,同一文档页面没有提供有关如何执行此操作的信息。
深入研究后,我发现了一个较旧的问题(大约 2015 年左右),它指出这是不可能的,但考虑到已经过去了 2 年,我想我会再问一次。
如果它有帮助的话,我正在开发一个 Flask 应用程序,它使用 [TinyDB] + 本地磁盘作为其数据存储 - 我已经确定我不需要比这更奇特的东西;目前这是一个为了学习而完成的项目,所以我决定变得非常轻量级。该项目的结构如下:
/project_directory
|- /app
|- __init__.py
|- ...
|- run.py # assumes `data/databases/ and data/files/` are present
|- Dockerfile
|- data/
|- databases/
|- db1.json
|- db2.json
|- files/
|- file1.pdf
|- file2.pdf
Run Code Online (Sandbox Code Playgroud)
我的和data/*中有该文件夹,这样它们就不会受到版本控制,并且在构建映像时被 Docker 忽略。.dockerignore.gitignore
在开发应用程序时,我还尝试使用尽可能接近真实世界的数据库条目和 PDF,因此我在应用程序中植入了非常小的真实数据子集,这些数据存储在安装的卷上直接进入data/Docker 容器实例化时。
我想要做的是将容器部署在远程主机上,但让远程主机植入启动数据(理想情况下,这将是我在本地使用的卷,以最大程度地方便);稍后,随着更多数据添加到远程主机上,我希望能够将其拉回,以便在开发过程中我可以使用最终用户输入的最新数据。
环顾四周,我想做的“hacky”方式就是简单地使用rsync,这可能会很好。但是,如果我缺少解决方案,我将非常感谢指导!
我刚刚在生物学研究中选择了Pandas来做一些数据分析工作.原来我正在分析的一种蛋白质被称为'NA'.
我有一个矩阵,在列标题上有成对的'HA,M1,M2,NA,NP ......',与"行标题"相同(对于可能读过这个的生物学家,我正在使用流感).
当我直接从CSV文件将数据导入Pandas时,它将"行标题"读作"HA,M1,M2 ...",然后NA读取为NaN.有没有办法阻止这个?列标题很好 - 'HA,M1,M2,NA,NP等......'
我想用力布局做一些与众不同的事情(用于可视化图形).星座和所有星座都很有趣,但对于时间序列数据来说,它并没有那么有用.我希望能够通过某个轴约束布局,例如,根据节点在数据集中出现的时间布置节点,同时仍然保留可视化的"弹性".这可能使用d3吗?
我想知道如何能够转换此问题以减少np.sum()代码中函数调用的开销.
我有一个input矩阵,比如说shape=(1000, 36).每行代表图中的一个节点.我有一个我正在做的操作,它迭代每一行并对可变数量的其他行进行元素添加.这些"其他"行在字典中定义,该字典nodes_nbrs为每行记录必须汇总在一起的行列表.一个例子是这样的:
nodes_nbrs = {0: [0, 1],
1: [1, 0, 2],
2: [2, 1],
...}
Run Code Online (Sandbox Code Playgroud)
在这里,节点0将被转换为节点0和的总和1.节点1将转换为节点之1和0,和2.等等其他节点.
我目前实施的当前(和天真)方式就是这样.我首先实例化我想要的最终形状的零数组,然后迭代nodes_nbrs字典中的每个键值对:
output = np.zeros(shape=input.shape)
for k, v in nodes_nbrs.items():
output[k] = np.sum(input[v], axis=0)
Run Code Online (Sandbox Code Playgroud)
这个代码在小测试(shape=(1000, 36))中都很酷很好,但是在较大的测试(shape=(~1E(5-6), 36))中,完成需要大约2-3秒.我最终不得不做这个操作数千次,所以我试图看看是否有更优化的方法来做到这一点.
在进行线性分析之后,我注意到这里的关键杀手是np.sum反复调用该函数,这占用了总时间的大约50%.有没有办法可以消除这种开销?或者还有另一种方法可以优化它吗?
除此之外,这里列出了我已经完成的事情,并且(非常简要地)他们的结果:
cython版本:消除了for环路类型检查的开销,在30%的时间减少服用.使用该cython版本,np.sum占整个挂钟时间的80%,而不是50%.np.sum为变量npsum,然后npsum …我使用 clustal omega 得到了 500 个蛋白质序列的距离矩阵(它们彼此同源)。
我想使用亲和传播来聚类这些序列。
最初,因为我亲手观察到距离矩阵只有 0 到 1 之间的值,0 距离 = 100% 同一性,所以我推断我可以只(1 - distance)获取亲和力。
我运行了我的代码,集群看起来很合理,我认为一切都很好......直到我读到通常,亲和矩阵是通过应用“热核”从距离矩阵计算出来的。就在那时,我脑海中的所有地狱都崩溃了。
我的亲和矩阵的概念不正确吗?有没有一种简单的方法来计算亲和度矩阵?scikit-learn 提供以下公式:
similarity = np.exp(-beta * distance / distance.std())
Run Code Online (Sandbox Code Playgroud)
但什么是测试版?我知道 distance.std() 是距离的标准偏差。
我现在对所涉及的概念(而不是实际的编码实现)感到非常困惑和迷失,因此非常感谢任何帮助!
PS 我试过在 Biostars.org 上发帖,但我还没有在那里得到答案......