草庐IT

python - Pandas:.ix 的替代品

鉴于pandas0.20.0和deprecationof.ix的更新,我想知道使用剩余的.loc和.iloc获得相同结果的最有效方法是什么。我刚刚回答了thisquestion,但第二个选项(不使用.ix)似乎效率低下且冗长。片段:printdf.iloc[df.loc[df['cap'].astype(float)>35].index,:-1]当同时使用条件和索引位置过滤时,这是正确的方法吗? 最佳答案 您可以通过将特定索引与位置切片来获取所需的索引值,从而留在单个loc的世界中。df.loc[df['cap'].astype(f

python - 将 Numpy 数组按列转换为 Pandas DataFrame(作为单行)

我有一个像这样的numpy数组:a=np.array([35,2,160,56,120,80,1,1,0,0,1])然后我尝试将该数组转换为具有逻辑“一列一值”的pandas数据框,如下所示:columns=['age','gender','height','weight','ap_hi','ap_lo','cholesterol','gluc','smoke','alco','active']values=adf=pd.DataFrame(a,columns=columns)这种方法引发ValueError:传递值的形状是(1,11),索引暗示(11,11)。我做错了什么以及如何以正

python - Pandas 中的聚合

如何使用Pandas执行聚合?聚合后没有DataFrame!发生了什么?如何主要聚合字符串列(到lists,tuples,stringswithseparator)?如何汇总计数?如何创建由聚合值填充的新列?我已经看到这些反复出现的问题询问Pandas聚合功能的各个方面。今天关于聚合及其各种用例的大部分信息都分散在数十个措辞恶劣、无法搜索的帖子中。这里的目的是为后代整理一些更重要的观点。本问答是一系列有用的用户指南的下一部分:Howtopivotadataframe,PandasconcatHowdoIoperateonaDataFramewithaSeriesforeverycolu

python - 从一个表中提取小时值并在另一个表中填充一小时增量的 "buckets"的函数

我有以下格式的数据供人们输入工作时间:(dat我想用R或Python编写一个函数,将每个人的工作总小时数提取到24个不同的桶中,每个桶作为其自己的列。它看起来像这样:所以在第一种情况下,这个人从下午1:15工作到下午2:30,所以他们从下午1点到下午2点(13-14日)工作了.75小时,从下午2点到下午3点(14-15日)工作了.5小时).我认为可能有用的一些东西是......一系列嵌套循环一长串if/then语句我还没有想到的Tidyverse或Pandas中的一些功能。上面#1和#2(?)的尝试完全失败了。不确定工作流程是什么,但非常感谢任何建议。请注意,结果表中的列不必是数字(可

Python Pandas 将列表列表的一列扩展为两个新列

我有一个看起来像这样的DF。nameidappsjohn1[[app1,v1],[app2,v2],[app3,v3]]smith2[[app1,v1],[app4,v4]]我想扩展应用列,使其看起来像这样。nameidapp_nameapp_versionjohn1app1v1john1app2v2john1app3v3smith2app1v1smith2app4v4感谢任何帮助 最佳答案 您可以.apply(pd.Series)两次以作为中间步骤获得您需要的内容,然后合并回原始数据框。importpandasaspddf=pd.

python - 使用 Pandas,如何删除每组的最后一行?

我有一个数据框,如下所示:importpandasaspddf=pd.DataFrame({'A':['one','one','two','three','three','one'],'B':range(6)})grouped=df.groupby('A')printgrouped.head()ABAone0one01one15one5three3three34three4two2two2我可以通过以下操作轻松选择每组的最后一行:print(grouped.agg(lambdax:x.iloc[-1]))BAone5three4two2我怎样才能删除每个组的最后一行?结果将是:AB0o

python - 计算 DataFrame 每一行中 Series 中项目的出现次数

我有一个看起来像这样的pandas.DataFrame。COL1COL2COL3C1NoneNoneC1C2NoneC1C1NoneC1C2C3对于此数据框中的每一行,我想计算每个C1、C2、C3的出现次数,并将此信息作为列附加到此数据框中。例如,第一行有1个C1、0个C2和0个C3。最终的数据框应该是这样的COL1COL2COL3C1C2C3C1NoneNone100C1C2None110C1C1None200C1C2C3111因此,我创建了一个以C1、C2和C3作为值的系列-topcount的一种方法是遍历DataFrame的行和列,然后遍历该系列并在匹配时递增计数器。但是是否有一

python - 使用 Pandas 组合/合并 2 个不同的 Excel 文件/工作表

我正在尝试合并2个不同的Excel文件。(感谢帖子Importmultipleexcelfilesintopythonpandasandconcatenatethemintoonedataframe)目前我做的是:importosimportpandasaspddf=pd.DataFrame()forfin['c:\\file1.xls','c:\\file2.xls']:data=pd.read_excel(f,'Sheet1')df=df.append(data)df.to_excel("c:\\all.xls")这是它们的样子。但是我想:排除每个文件的最后一行(即File1.xl

python - Pandas :获取数据帧中对角线下方的元素(索引,列)

我有一个pandasDataFrame,df。我想提取df中所有(col,index)的列表,其中(col,index)>.95的值。此外,我想以它们位于df的下对角线这一事实为条件,不包括对角线本身。(如果有帮助的话,它是相关df,所以对角线是1,这不是我感兴趣的。)我该怎么做? 最佳答案 In[71]:df=DataFrame(np.arange(25).reshape(5,5))In[72]:dfOut[72]:01234001234156789210111213143151617181942021222324这掩盖了上三角(

python - 从 {index : list of row values} 形式的字典构造 Pandas DataFrame

我已经设法使用:dft=pd.DataFrame.from_dict({0:[50,45,00,00],1:[53,48,00,00],2:[56,53,00,00],3:[54,49,00,00],4:[53,48,00,00],5:[50,45,00,00]},orient='index')这样做,构造函数看起来就像DataFrame一样,易于阅读/编辑:>>>dft0123050450015348002565300354490045348005504500但是DataFrame.from_dictconstructor没有列参数,因此为列提供合理的名称需要一个额外的步骤:dft.