草庐IT

sample_dataframe

全部标签

python - 何时使用 DataFrame.eval() 与 pandas.eval() 或 Python eval()

我有几十个条件(例如,foo>bar)需要在DataFrame的~1MM行上进行评估,最简洁的方法编写此代码是为了将这些条件存储为字符串列表,并创建bool结果的DataFrame(每条记录一行x每个条件一列)。(用户输入不被评估。)在寻求过早优化的过程中,我试图确定是否应该在DataFrame中编写这些评估条件(例如,df.eval("foo>bar")或将其留给Python,如eval("df.foo>df.bar")根据documentationonenhancingevalperformance:Youshouldnotuseeval()forsimpleexpressions

python - 具有分层索引的 DataFrame 中的列断言错误

另一个Pandas问题:我有这个带有分层索引的表:In[51]:frompandasimportDataFramef=DataFrame({'a':['1','2','3'],'b':['2','3','4']})f.columns=[['level1item1','level1item2'],['','level2item2'],['level3item1','level3item2']]fOut[51]:level1item1level1item2level2item2level3item1level3item2012123234碰巧选择level1item1会产生如下错误:In[

python - 按 MultiIndex 级别或子级别切片 pandas DataFrame

灵感来自thisanswer并且缺乏对thisquestion的简单答案我发现自己编写了一些语法糖,以便更轻松地按MultiIndex级别进行过滤。def_filter_series(x,level_name,filter_by):"""Filterapd.Seriesorpd.DataFramexby`filter_by`ontheMultiIndexlevel`level_name`Uses`pd.Index.get_level_values()`inthebackground.`filter_by`iseitherastringoraniterable."""ifisinstan

python - Apache Spark Python 与 DataFrames 的余弦相似度

对于推荐系统,我需要计算整个SparkDataFrame的所有列之间的余弦相似度。在Pandas中,我曾经这样做过:importsklearn.metricsasmetricsimportpandasaspddf=pd.DataFrame(...somedataframeoverhere:D...)metrics.pairwise.cosine_similarity(df.T,df.T)生成列之间的相似度矩阵(因为我使用了转置)有什么方法可以在Spark(Python)中做同样的事情吗?(我需要将其应用于由数千万行和数千列组成的矩阵,所以这就是我需要在Spark中执行的原因)

python - pickle Pandas DataFrame 的最快方法是什么?

使用Pandas内置方法或pickle.dump哪个更好?标准的pickle方法如下所示:pickle.dump(my_dataframe,open('test_pickle.p','wb'))Pandas内置方法如下所示:my_dataframe.to_pickle('test_pickle.p') 最佳答案 感谢@qwwqwwq,我发现pandas有一个用于数据帧的内置to_pickle方法。我做了一个快速时间测试:In[1]:%timeitpickle.dump(df,open('test_pickle.p','wb'))10

python - 将大型 Pandas DataFrame 写入 SQL Server 数据库

我有74个相对较大的PandasDataFrame(大约34,600行和8列),我试图尽快将它们插入到SQLServer数据库中。在做了一些研究之后,我了解到好的olepandas.to_sql函数不适用于向SQLServer数据库中进行如此大的插入,这是我最初采用的方法(非常慢-将近一个小时应用程序完成与使用mysql数据库时大约4分钟。)Thisarticle,以及许多其他StackOverflow帖子都帮助我指明了正确的方向,但是我遇到了障碍:出于上面链接中解释的原因,我正在尝试使用SQLAlchemy的核心而不是ORM。因此,我使用pandas.to_dict将数据帧转换为字典

python - Pandas:水平组合两个 DataFrame

这个问题在这里已经有了答案:Concatenaterowsoftwodataframesinpandas(2个答案)关闭5年前。我有两个PandasDataFrame,每个都有不同的列。我想基本上将它们水平粘合在一起(它们每个都有相同的行数,所以这应该不是问题)。一定有一种简单的方法可以做到这一点,但我已经阅读了文档,concat不是我要找的(我不认为)。有什么想法吗?谢谢!

python - 如何从 Python 中创建的 Dataframe 中删除索引?

我通过使用以下命令合并2个列表创建了一个Dataframedf:importpandasaspddf=pd.DataFrame({'Name':list1,'Probability':list2})但我想删除第一列(索引列)并使名为Name的列成为第一列。我尝试使用deldf['index']和index_col=0。但他们没有工作。我还检查了reset_index()但这不是我需要的。我想从这样创建的数据框中完全删除整个索引列(如上所述)。有人请帮忙! 最佳答案 您可以使用set_index,docs:importpandasas

python 2 vs python 3 随机性能,特别是 `random.sample` 和 `random.shuffle`

python随机模块的性能问题,特别是random.sample和random.shuffle出现在thisquestion中。.在我的电脑上,我得到以下结果:>python-mtimeit-s'importrandom''random.randint(0,1000)'1000000loops,bestof3:1.07usecperloop>python3-mtimeit-s'importrandom''random.randint(0,1000)'1000000loops,bestof3:1.3usecperloop与python2相比,python3的性能下降了20%以上。情况变得

python - 使用 Pandas DataFrame.sort() 时,我可以让它真正对行重新编号吗?

我总是对此感到惊讶:>data=DataFrame({'x':[1,2],'y':[2,1]})>data=data.sort('y')>dataxy121012>data['x'][0]1有没有办法让索引重新分配以适应新的排序? 最佳答案 就我而言,我很高兴排序不会丢弃索引信息。如果是这样,那么首先有一个索引而不是另一个列就没有多大意义了。如果您想将索引重置为一个范围,您可以:>>>dataxy121012>>>data.reset_index(drop=True)xy021112您可以根据需要重新分配或使用inplace=Tru