草庐IT

python - 将最后 N 个重复项保留在 pandas 中

给定一个数据框:>>>importpandasaspd>>>lol=[['a',1,1],['b',1,2],['c',1,4],['c',2,9],['b',2,10],['x',2,5],['d',2,3],['e',3,5],['d',2,10],['a',3,5]]>>>df=pd.DataFrame(lol)>>>df.rename(columns={0:'value',1:'key',2:'something'})valuekeysomething0a111b122c143c294b2105x256d237e358d2109a35目标是为key列的唯一值保留最后N行。如果N

python - Pandas 数据框中的平均标准

有一个pandas数据框如下:ab011211132123322242235224633073358355我想找出每组中b列的平均标准差。我的以下代码为每组提供0。stdMeann=lambdax:np.std(np.mean(x))print(pd.Series(data.groupby('a').b.apply(stdMeann))) 最佳答案 如评论中所述,您可以使用.aggtoaggregate通过多项统计:In[11]:df.groupby("a")["b"].agg([np.mean,np.std])Out[11]:me

python - AttributeError : 'PandasExprVisitor' object has no attribute 'visit_Ellipsis' , 使用 pandas eval

我有一系列的表格:s0[133,115,3,1]1[114,115,2,3]2[51,59,1,1]dtype:object注意它的元素是字符串:s[0]'[133,115,3,1]'我正在尝试使用pd.eval将此字符串解析为一列列表。这适用于此示例数据。pd.eval(s)array([[133,115,3,1],[114,115,2,3],[51,59,1,1]],dtype=object)然而,对于更大的数据(10K量级),这会失败得很惨!len(s)300000pd.eval(s)AttributeError:'PandasExprVisitor'objecthasnoatt

python - 如何将 Pandas 数据框中的多列弹出到新的数据框中?

假设我有以下内容:df=pd.DataFrame({'a':range(2),'b':range(2),'c':range(2),'d':range(2)})我想从数据框中“弹出”两列(“c”和“d”)到一个新的数据框中,在原始df中留下“a”和“b”。以下不起作用:df2=df.pop(['c','d'])这是我的错误:TypeError:'['c','d']'isaninvalidkey除了执行以下操作之外,还有谁知道快速、优雅的解决方案吗?df2=df[['c','d']]df3=df[['a','b']]我知道上面的代码输入起来并不乏味,但这就是发明DataFrame.pop的

python - pandas dataframe - 根据列标题更改值

我有一个如下所示的dataframe:In[74]:data2Out[74]:abc2012-06-120112012-06-131102012-06-141012012-06-151012012-06-161102012-06-17101有没有办法让值=值=1的列标题?结果df:abc2012-06-120bc2012-06-13ab02012-06-14a0c2012-06-15a0c2012-06-16ab02012-06-17a0c然后删除=0的值,使df减少到2列:(此时列标题不相关)结果df:122012-06-12cb2012-06-13ab2012-06-14ac201

python - Pandas DataFrame 按天/小时/分钟切片

我有带有日期时间索引的pandasDataframe,例如“YYYY-MM-DDHH:MM:SS”。IndexParameter2007-05-0214:14:08134.82007-05-0214:14:32134.82007-05-0214:14:41134.82007-05-0214:14:53134.82007-05-0214:15:01134.82007-05-0214:15:09134.8......2007-05-3023:08:02105.92007-05-3023:18:02105.92007-05-3023:28:02105.92007-05-3023:38:031

python - 大 TSV 文件中 moSTLy 整数字符串列的 pandas read_csv dtype 推断不一致

我有一个制表符分隔的文件,其中有一列应该被解释为字符串,但许多条目都是整数。对于小文件,read_csv在看到一些非整数值后正确地将列解释为字符串,但对于大文件,这不起作用:importpandasaspddf=pd.DataFrame({'a':['1']*100000+['X']*100000+['1']*100000,'b':['b']*300000})df.to_csv('test',sep='\t',index=False,na_rep='NA')df2=pd.read_csv('test',sep='\t')printdf2['a'].unique()foraindf2['

python - 如何*不*在 ipython 笔记本(pandas 数据帧的 html 表)中显示 'NaN'?

我有一个小的CSV文件,其中包含来自不同日期等情况下执行的测试的真实世界数据。并非所有相同的参数在每个session中都经过测试,因此原始电子表格周围散布着一堆空白单元格。TunerLocation,200,210,220,230,240,250,260,270,28007/17#1,,,0.319,0.319,0.233,,0.215,,0.335507/21#1,,0.539,0.482,0.034,0.343,0.478,0.285,0.01,0.53807/21#2,,,0.107,0.407,0.559,,0.185,0.439,0.3607/21#3,,,0.127,,,,

python - Pandas - Groupby 并创建新的 DataFrame?

这是我的情况-In[1]:dataOut[1]:ItemType0OrangeEdible,Fruit1BananaEdible,Fruit2TomatoEdible,Vegetable3LaptopNonEdible,ElectronicIn[2]:type(data)Out[2]:pandas.core.frame.DataFrame我想做的是创建一个只有Fruits的数据框,所以我需要groupby这样Fruit存在于类型。我试过这样做:grouped=data.groupby(lambdax:"Fruit"inx,axis=1)我不知道这是否是这样做的方式,我在理解groupb

python - 在循环中替换 Pandas 数据框中的值

我正在尝试遍历pandas数据框并在满足特定条件时替换特定列中的值。我意识到通常有更直接的方法可以做到这一点,但在我的具体示例中我需要一个循环,因为一行的结果可能取决于前一行。下面是一个可重现的错误示例。当我尝试替换文本时,它并没有替换它。importpandasaspddf=pd.DataFrame({"A":["I","AM","NOT","WORKING","!"],"B":[20,30,10,40,50],"C":[32,234,23,23,42523]})forindex,rowindf.iterrows():row['A']="Iamworking!"print(df)打印