草庐IT

Dataframe

全部标签

【pandas小技巧】--DataFrame的显示参数

我们在jupyternotebook中使用pandas显示DataFrame的数据时,由于屏幕大小,或者数据量大小的原因,常常会觉得显示出来的表格不是特别符合预期。这时,就需要调整pandas显示DataFrame的方式。pandas为我们提供了很多调整显示方式的参数,具体参见文末附录中的链接。本篇介绍几个我经常用到的参数来抛砖引玉。1.参数的相关函数对于参数的控制,pandas提供了完整的方法。describe_option:获取参数的描述信息get_option:获取参数的值set_option:设置参数的值reset_option:重置参数的值,也就是将参数恢复到默认值以max_colu

python - 比较 Pandas Dataframe 行和删除具有重叠日期的行

我有一个数据框,其中包含从交易策略中获取的交易。交易策略中的逻辑需要更新,以确保如果策略已经在交易中则不会进行交易——但这是一个不同的问题。许多先前交易的交易数据从csv文件读入数据框。这是我的数据问题:我需要对数据帧进行逐行比较,以确定rowX的Entrydate是否小于ExitDaterowX-1。我的数据样本:Row1:EntryDateExitDate2012-07-252012-07-27Row2:EntryDateExitDate2012-07-262012-07-29第2行需要删除,因为这是不应该发生的交易。我无法确定哪些行是重复的,然后删除它们。我尝试了approach

python - Pandas Dataframe 添加标题而不替换当前标题

如何在不替换当前标题的情况下向DF添加标题?换句话说,我只想将当前header向下移动并将其作为另一条记录添加到数据框中。*次要问题:如何将表(示例数据框)添加到stackoverflow问题?我有这个(注意标题以及它是如何作为一行添加的:0.2132310.3145440-0.952928-0.6246461-1.020950-0.883333我需要这个(所有其他记录都向下移动并添加一个新记录)(另外:我无法正确读取csv,因为我正在使用s3_text_adapter进行导入,而且我无法弄清楚如何使用类似于pandasread_csv的忽略header的参数):AB00.213231

python - Pandas DataFrame 列连接

我有一个包含100万行和5列的pandasDataframey。np.shape(y)(1037889,5)列值都是0或1。看起来像这样:y.head()a,b,c,d,e0,0,1,0,01,0,0,1,10,1,1,1,10,0,0,0,0我想要一个包含100万行和1列的Dataframe。np.shape(y)(1037889,)其中列只是连接在一起的5列。Newcolumn0,0,1,0,01,0,0,1,10,1,1,1,10,0,0,0,0我一直在尝试不同的东西,比如merge、concat、dstack等等...但似乎无法弄清楚。 最佳答案

python - 值错误 : DataFrame index must be unique for orient ='columns'

我将许多数据框合并成一个更大的数据框,pd.concat(dfs,axis=0)然后我可以不将它转储到json(Pdb)df.to_json()***ValueError:DataFrameindexmustbeuniquefororient='columns'.我该如何解决? 最佳答案 该错误表明您的数据帧索引具有非唯一(重复)值。由于您似乎没有使用索引,因此您可以创建一个新索引:df.reset_index(inplace=True)或df.reset_index(drop=True,inplace=True)如果你想删除之前的

python - 如何在 Pandas 中合并 "(df1 & not df2)"数据帧?

我有2个pandas数据帧df1和df2,它们具有公共(public)列/键(x,y)。我想合并对键(x,y)进行“(df1&notdf2)”类型的合并,这意味着我希望我的代码返回一个数据框,其中包含仅在df1而不是(x,y)中的行在df2中。SAS具有等效的功能datafinal;mergedf1(in=a)df2(in=b);byxy;ifa¬b;run;谁能优雅地在pandas中复制相同的功能?如果我们能在merge()中指定how="left-right"就好了。 最佳答案 我刚刚升级到10天前发布的0.17.0RC1

python - 使用包含空格的列名查询 Pandas DataFrame 或使用包含空格的列名的 drop 方法

我希望使用pandas根据列名(包含空格)和单元格值删除行。我已经尝试了多种方法来实现这一点(删除和查询方法),但由于名称中的空格,我似乎失败了。有没有办法使用其中有空格的名称查询数据,或者我是否需要先清理所有空格?csv文件形式的数据Date,"price","SaleItem"2012-06-11,1600.20,item12012-06-12,1610.02,item22012-06-13,1618.07,item32012-06-14,1624.40,item42012-06-15,1626.15,item52012-06-16,1626.15,item62012-06-17,

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 :更改具有多级列的数据框中的特定列名

我想找到在多级数据框中更改特定列名称的方法。有了这些数据: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