我是Python新手,正在尝试解决这里的性能问题。我有2个数据帧
数据帧1
col1 col2
holiday party
party party
bagel snack
fruit snack
数据帧2:
col1 col2
bagel wednesday snack
coffee for party snack
holiday party party
数
我有一个大概的dataFrame。400万行和35列作为输入。
我对这个dataFrame所做的全部工作是以下步骤:
对于给定列的列表,我计算给定的组特性列表的和,并将其作为新列加入到我的输入中,在我将每个新列和加入到dataFrame.之后立即删除它。
因此,我们最终得到的dataFrame与我们从(理论上)开始的相同。
但是,我注意到,如果我的给定列列表太大(来自6个以上的列),则无法操作输出dataFrame。即使是一个简单的显示也需要10分钟。
下面是我的代码示例(df是我的输入dataFrame):
for c in list_columns:
df = df.join(
我使用以下函数来使用Python执行IRR计算:
from scipy.optimize import newton
def xnpv(rate, values, dates):
if rate <= -1.0:
return float('inf')
min_date = min(dates)
return sum([
value / (1 + rate)**((date - min_date).days / 365)
for value, date
in zip(val
我知道使用Python进行z分数计算。
给定原始分数和z分数,是否有可能计算滚动窗口来计算原始分数的平均值?请提出前进的方向。
def zscore(x, window):
r = x.rolling(window=window)
m = r.mean().shift(1)
s = r.std(ddof=0).shift(1)
z = (x-m)/s
return z
import pandas as pd
import numpy as np
raw1 = pd.DataFrame(np.random.randn(100, 1), col
如何以并行方式从mongodb导入数据。一个解决方案是扫描所有mongodb,假设它在那里有1000行。然后分裂,把它们分100批,然后再把它们组合起来,所以它们都是1000。
下面是从mongodb将数据导入python的代码。
import pandas as pd
from pymongo import MongoClient
def _connect_mongo(host, port, username, password, db):
""" A util for making a connection to mongo """
我从m个正态分布中取样,每次n次,并将样本存储在二维正态分布中。然后,我需要将其转换为polars,因为我需要添加一些字符串列并进行大量的查询/聚合。
我认为将数组转换为dataframe的地方效率很低。极性文档似乎没有这样做的例子,我看到的每个例子都使用手工输入的少量数据,而我有来自10万个正态分布的10万个样本。
下面是示例的功能:
use rand_distr::{Normal, Distribution};
use polars::prelude::*;
use rayon::prelude::*;
use ndarray::Array2;
use cute::c;
#[macro_u
我正在使用regex从一个大型pdf文件中提取数据,在databricks中使用python。此数据以长字符串的形式存在,我使用字符串拆分函数将其转换为熊猫数据,因为我希望最终数据作为csv文件。但是在执行line.split命令时,运行该命令需要5个小时,我正在寻找优化该命令的方法。我对python并不熟悉,我不确定应该考虑哪一部分代码来减少运行命令的时间。
for pdf in os.listdir(data_directory):
# creating an object
file = open(data_directory + pdf, 'rb')
# c
我正在学习如何编码,并选择了Python来进行编码。我的第一个任务是优化一个投资组合和Efficient Frontier。我发现了一个由@s666写的很棒的代码。与一般优化情况一样,约束如下: 1)权重之和= 1,以及2)没有权重大于1的股票。 在下面显示的代码中,您能否告诉我如何添加第三个约束,其中所考虑的3只股票除了上面提到的约束(即0.2>AAPL<0.7;0.3 提前感谢您……
import numpy as np
import pandas as pd
from pandas_datareader import data as d
import matplotli
我试图在Julia中运行一个引导程序,并编写了一个可工作的引导函数。然而,这是缓慢和相同的代码在R运行了一半的时间。我确信我的代码中一定有一些效率低下的地方,我对使用Julia非常陌生。我想知道是否有人能给我一些建议。
以下是完全可复制的代码
using DataFrames
using Statistics
using StatsBase
df = DataFrame(rand(1:9, 1000,1000), :auto); # Create data
# Bootstrap function
function bootstrap(;iters=1, data=nothing, sta
我有一个很大的熊猫DataFrame,每个元素都是复杂的numpy数组。请参阅下面的一个最低限度代码示例,以再现该场景:
d = {f'x{i}': [] for i in range(4)}
df = pd.DataFrame(data=d).astype(object)
for K in range(4):
for i in range(4):
df.loc[f'{K}', f'x{i}'] = np.random.random(size=(2,2)) + np.random.random(size=(2,2)
我创建了一个Python程序来分析加密货币。该程序每分钟从交换中获取一次烛台信息,并将其附加到pandas DataFrame对象中,变量名为"candlesticks“。 然而,我注意到如果这个程序长时间运行,这个“烛台”变量会变得非常大。为了节省内存,我们决定将DataFrame的长度确定为50000,然后在超过该长度时逐个删除旧数据。 以下代码是一个简化的示例代码。使用DataFrame方法drop()删除最旧的数据,使用append()方法更新新数据。 from random import random
import pandas as pd
import time
def
我有一个优化的问题,当我引用一个变量,然后引用一个变量等等,每次我提到最后一个包含前一个变量的变量时,所有的代码都会再次被执行吗?
例如,我的代码:
a = 5
b = 6
c = b * 2
d = a + c
e = c + d
f = e + d + c
g = f
h = g
现在,在我的代码中,我说print(h),是所有的东西都必须重新计算,还是python在引用它们时将所有值保存在内存中?我在python中使用SQL和熊猫时遇到了这种情况,当我连接到数据库时,获取所需的内容,转换数据,然后将其加载到一个dataframe中,从原始数据中创建3个新的数据格式,并提到其中一个包含1,
使用python2,我希望能够解析和计算已保存为字符串的公式。基本上,我希望客户端能够描述应用于他们数据的公式。其中一些公式可能具有自定义函数。以下是两个例子:
x / y
SumF(x) / y # Here SumF is my own custom function
我开始使用Sympy,但遇到了一个障碍,因为在评估熊猫DataFrames时,我无法得到它的作用(也就是说,它似乎将Dataframe转换成一个由列标签组成的列表.)。我怀疑Sympy只是不支持熊猫DataFrame/Series对象。我真的想使用这些东西,因为它将使生活变得更容易,因为所有通常的原因。
普通的旧eval()
我在这个问题中使用了Tomas提出的解决方案:
我已经完成了一个快速测试python和上面的解决方案。我稍微修改了Tomas建议的函数,将计数按相反顺序排序,以匹配Series.count_values()函数中的输出。
let unique s =
s |> Series.groupInto (fun _ v -> v) (fun _ g -> Stats.count g)
|> Series.sortBy (fun v -> -v)
当我在F#互动中执行以下代码时
let rand = Random()
let l = [|1..1_00
我有一个写数据帧的R脚本。为了简单起见,我们假设数据帧是这样写在R中的: testing = data.frame(x=c(1,2,3), y = c(4,5,6)) 我的目标是使用Python代码对这个dataframe进行一些建模(显然不是这个实际的dataframe,但同样,为了简单起见)。因此,我用Python编写了以下代码来编写R代码: import rpy2.robjects as robjects
from rpy2.robjects.packages import importr
import rpy2.robjects.packages as rpackages
base
我有一个Python函数(如下所示),它从S3读取多个csv文件,并将它们分别保存为一个字典中的Pandas DataFrames。有没有办法将这个过程并行化,以便可以同时读取tables中的多个项目,而不是逐个读取?
# Load libraries
import pandas as pd
import dask.dataframe as dd
# Define function
def read_data(bucket_name, tables):
all_data = dict()
for t in tables:
all_data[t] = d