草庐IT

pyhton_Pandas

全部标签

python - Pandas :是否可以使用任意长的 bool 标准过滤数据框?

如果您确切地知道要如何过滤数据框,那么解决方案很简单:df[(df.A==1)&(df.B==1)]但是,如果您正在接受用户输入并且事先不知道用户想要使用多少标准怎么办?例如,用户想要一个过滤后的数据框,其中列[A、B、C]==1。是否可以执行以下操作:deffilterIt(*args,value):returndf[(df.*args==value)]所以如果用户调用filterIt(A,B,C,value=1),它返回:df[(df.A==1)&(df.B==1)&(df.C==1)] 最佳答案 我认为最优雅的方法是使用df.

python - 如何根据条件用列名替换 Pandas 数据框中的值?

我有一个看起来像这样的数据框:我想用列名替换A:D范围内的所有1,这样最终结果应该类似于:我该怎么做?你可以用这个重新创建我的数据框:dfz=pd.DataFrame({'A':[1,0,0,1,0,0],'B':[1,0,0,1,0,1],'C':[1,0,0,1,3,1],'D':[1,0,0,1,0,0],'E':[22.0,15.0,None,10.,None,557.0]}) 最佳答案 一种方法是使用replace并将系列映射列标签传递给值(在本例中为相同的标签):>>>dfz.loc[:,'A':'D'].replace

python - Pandas - 如何对多个变量进行分组和拆分?

我目前有一些结构如下的数据集:data={'participant':[100,101,102,103,104,105,106,107,108,109],'step_name':['first','first','second','third','second','first','first','first','second','third'],'title':['acceptable','acceptable','notacceptable','acceptable','notacceptable','acceptable','notacceptable','acceptable',

python - Pandas 数据框 groupby 的峰度不起作用

当我在pandas数据名上应用峰度函数时,我总是会收到以下错误:AttributeError:Cannotaccesscallableattribute'kurt'of'DataFrameGroupBy'objects,tryusingthe'apply'method以下示例代码适用于所有其他统计函数(mean()、skew()等),但不适用于峰度。df=pd.DataFrame([[0,1,1,0,0,1],[0,1,2,4,5]]).Tdf.columns=['a','b']df.groupby('a').kurt()知道如何在groupby之后应用峰度吗?谢谢!

python - Pandas :更改具有多级列的数据框中的特定列名

我想找到在多级数据框中更改特定列名称的方法。有了这些数据:data={('A','1','I'):[1,2,3,4,5],('B','2','II'):[1,2,3,4,5],('C','3','I'):[1,2,3,4,5],('D','4','II'):[1,2,3,4,5],('E','5','III'):[1,2,3,4,5],}dataDF=pd.DataFrame(data)此代码无效:dataDF.rename(columns={('A','1','I'):('Z','100','Z')},inplace=True)结果:ABCDE12345IIIIIIIII011111

python - Pandas DataFrame 排序忽略大小写

我有一个用Python编写的Pandas数据框。dataframe的内容来自here.我稍微修改了“单个”列中第一个字母的大小写。这是我所拥有的:importpandasaspddf=pd.read_csv('test.csv')printdfPositionArtistSingleYearWeeks1FrankieLaineIBelieve195318weeks2BryanAdamsIDoItforYou199116weeks3WetWetWetloveIsAllAround199415weeks4Drake(feat.Wizkid&Kyla)OneDance201615weeks5

python - 散列 Pandas 数据框中的每个值

在python中,我试图找到最快的方法来散列pandas数据框中的每个值。我知道任何字符串都可以使用:hash('astring')但我如何将这个函数应用于pandas数据框的每个元素?这可能是一件很简单的事情,但我才刚刚开始使用python。 最佳答案 将hash函数传递给str列上的apply:In[37]:df=pd.DataFrame({'a':['asds','asdds','asdsadsdas']})dfOut[37]:a0asds1asdds2asdsadsdasIn[39]:df['hash']=df['a'].a

python - 从 Pandas 列中提取单个值

我有一个关于提取单个列值的简单pandas问题df=DataFrame({'A':[15,56,23,84],'B':[10,20,33,25]})dfAB01510156202233338455x=df[df['A']==23]x输出AB22333但是,我只想获取B列中的值,即33。我如何获取该值? 最佳答案 我的首选方法是Jeff使用loc(避免处理副本通常是一种很好的做法,尤其是当您稍后可能会进行赋值时)。您可以通过不为bool掩码创建系列来获得更多性能,只需创建一个numpy数组:df=pd.DataFrame(np.ran

python - 过滤数据框的 Pandas 直方图

在过去的一个小时里,这让我很生气。我可以在使用时绘制直方图:hist(df.GVW,bins=50,range=(0,200))例如,当我需要针对其中一列中的给定条件过滤数据框时,我会使用以下命令:df[df.TYPE=='SU4']到目前为止,一切正常。当我尝试获取此过滤数据的直方图时,我收到一个关键错误:KeyError:0L。我将以下内容用于过滤数据的直方图:hist(df[df.TYPE=='SU4'].GVW,bins=50,range=(0,200))是不是哪里有语法错误?感谢您的帮助! 最佳答案 也许尝试使用.valu

python - 箱线图按 python pandas 中的列分层

我想为以下pandas数据框绘制一个箱线图:>p1.head(10)N0_YLDFMAT01.2913.6712.3210.6726.2411.2935.3421.2946.3541.6755.3591.6769.3221.5276.3231.5283.3313.5294.5644.52我希望箱线图属于“N0_YLDF”列,但它们应该按“MAT”进行分层。当我使用foll时。命令:p1.boxplot(column='N0_YLDF',by='MAT')它使用所有唯一的MAT值,在完整的p1数据帧中数量约为15,000。这会导致难以理解的箱线图。有什么方法可以对MAT值进行分层,以便为