草庐IT

python - Pandas read_table 使用第一列作为索引

我这里有个小问题。我有一个txt文件,其中包含以下形式的行(比方说第1行):id1-a1-b1-c1我想使用pandas将其加载到数据框中,索引为id,列名称为“A”、“B”、“C”,值分别为ai、bi、ci最后我希望数据框看起来像:'A''B''C'id1a1b1c1id2a2b2c2............我可能想按block读取文件很大,但假设我一次读取:withopen('file.txt')asf:table=pd.read_table(f,sep='-',index_col=0,header=None,lineterminator='\n')并重命名列table.colum

python - 如何进行查询以过滤其中一列等于同一表中另一列的行?

假设我有一个看起来像这样的模型:classStockRequest(models.Model):amount_requested=models.PositiveIntegerField(null=True)amount_approved=models.PositiveIntegerField(null=True)有什么方法可以使Django查询显示所有请求,其中在特定对象/行上的amount_requested和amount_approved之间存在某种关系?在SQL中它会很简单:select*fromstockrequestwhereamount_requested=amount_a

python - 如何从 2D numpy 数组中删除第一行和最后一行和最后一列?

我想知道如何从numpy中的二维数组中删除第一行和最后一行和最后一列。例如,假设我们有一个名为H的(N+1)x(N+1)矩阵,那么在MATLAB/Octave中,我将使用的代码是:Hsub=H(2:N,2:N);Numpy中的等效代码是什么?我以为np.reshape可能会做我想做的事,但我不确定如何让它只删除目标行,因为我认为如果我reshape为(N-1)x(N-1)矩阵,它'将删除最后两行和两列。 最佳答案 这个怎么样?Hsub=H[1:-1,1:-1]1:-1范围意味着我们从第二个索引或1访问元素,然后我们上升到倒数第二个索

python - 如何使用正则表达式在 Pandas 中将一列拆分为多列?

例如,如果我有这样的家庭住址:71PilgrimAvenue,ChevyChase,MD在名为“地址”的列中。我想将其分别拆分为“街道”、“城市”、“州”列。使用Pandas实现这一目标的最佳方法是什么?我试过df[['street','city','state']]=df['address'].findall(r"myregex")。但我得到的错误是使用可迭代设置时必须具有相等的len键和值。谢谢你的帮助:) 最佳答案 您可以使用split通过正则表达式,\s+(,和一个或多个空格):#borrowingsamplefrom`Al

python - 如何在 Pandas 中使用groupby根据另一列中的标准计算百分比/比例总数

我正在尝试研究如何使用pandas中的groupby函数根据给定的是/否标准计算每年的值比例。例如,我有一个名为names的数据框:NameNumberYearSexCriteria0name17891998MaleN1name16881999MaleN2name16392000MaleN3name25511998MaleY4name24991999MaleY我可以用namesgrouped=names.groupby(["Sex","Year","Criteria"]).sum()获得:NumberSexYearCriteriaMale1998N14507Y23081999N1411

python - PySpark - 对数据框中的一列求和并将结果作为 int 返回

我有一个带有一列数字的pyspark数据框。我需要对该列求和,然后将结果作为int返回到python变量中。df=spark.createDataFrame([("A",20),("B",30),("D",80)],["Letter","Number"])我执行以下操作来对列求和。df.groupBy().sum()但是我得到了一个数据框。+-----------+|sum(Number)|+-----------+|130|+-----------+我会将130作为存储在变量中的int返回,以便在程序的其他地方使用。result=130 最佳答案

python - Pandas :用第二列中出现次数之间的 obs 计数填充一列

假设我有以下DataFrame,它有一个0/​​1条目,具体取决于某个月内是否发生/未发生某事。Y=[0,0,1,1,0,0,0,0,1,1,1]X=pd.date_range(start="2010",freq="MS",periods=len(Y))df=pd.DataFrame({'R':Y},index=X)R2010-01-0102010-02-0102010-03-0112010-04-0112010-05-0102010-06-0102010-07-0102010-08-0102010-09-0112010-10-0112010-11-011我想要的是创建第二列,列出距离

python - Pandas 在读取制表符分隔的数据时似乎忽略了第一列名称,给出了 KeyError

我在Ubuntu13.10上的ipython3中使用pandas0.12.0,以便在txt文件中处理大型制表符分隔的数据集。使用read_table从txt创建DataFrame似乎可行,并且第一行被读取为标题,但尝试使用其名称作为索引访问第一列会引发KeyError。我不明白为什么会发生这种情况,因为列名似乎都已被正确读取,并且其他所有列都可以用这种方式编制索引。数据如下所示:RECORDING_SESSION_LABELLEFT_GAZE_XLEFT_GAZE_YRIGHT_GAZE_XRIGHT_GAZE_YVIDEO_FRAME_INDEXVIDEO_NAME73_1..395

python - 对一列执行累积总和,但如果总和在 Pandas 中变为负数,则重置为 0

我有一个包含两列的pandas数据框,ItemValue0A71A22A-63A-704A85A0我想对列Value求和。但是,在创建累积和时,如果该值变为负数,我想将其重置为0。我目前正在使用如下所示的循环来执行此操作,sum_=0cumsum=[]forvalinsample['Value'].values:sum_+=valifsum_我正在寻找一种更有效的方法来在纯Pandas中执行此操作。 最佳答案 稍微修改一下也是这个方法慢一点numba解决方案sumlm=np.frompyfunc(lambdaa,b:0ifa+bnu

python - pandas:用一些 numpy 数组填充一列

我使用的是python2.7和pandas0.11.0。我尝试使用DataFrame.apply(func)填充数据框的一列。func()函数应该返回一个numpy数组(1x3)。importpandasaspdimportnumpyasnpdf=pd.DataFrame(np.random.randn(4,3),columns=list('ABC'))print(df)ABC00.9101420.7883000.1141641-0.603282-0.6258952.84313021.823752-0.091736-0.10778130.447743-0.1636050.514052用