草庐IT

pyspark-dataframes

全部标签

python - 从索引到列级别交换一级(Pandas Multiindex Dataframe)

我有一个多索引的pandas.Dataframe,它是这样的:BAZPALFooBar1241AB2CD1341EF2GH我需要以适当的方式将一级索引与列交换。我需要以这样的方式结束:124134CooBarBAZ1AE2CGPAL1BF2DH 最佳答案 您需要取消堆叠现有索引级别Foo,堆叠所需列“Coo”,然后重新排列索引级别。交换索引级别后,您可能想要对其进行排序。作为最后一步,您可能想要删除所有值的列名称(val)。df=(pd.DataFrame({'Foo':[124,124,134,134]*2,'Bar':[1,2,

python - 在多个条件下合并 DataFrames - 而不是专门针对相等的值

首先,抱歉,如果这有点冗长,但我想完整地描述我遇到的问题以及我已经尝试过的事情。我正在尝试在多个条件下将两个数据框对象连接(合并)在一起。如果要满足的条件都是“等于”运算符,我知道如何执行此操作,但是,我需要使用LESSTHAN和MORETHAN。数据框表示遗传信息:一个是基因组中的突变列表(称为SNP),另一个提供有关基因在人类基因组中的位置的信息。对这些执行df.head()返回以下内容:SNP数据帧(snp_df):chromosomeSNPBP01rs309431575256611rs313197275272121rs207381475347431rs3115859754503

python - Dask DataFrame Groupby 分区

我有一些相当大的csv文件(~10gb),想利用dask进行分析。但是,根据我设置要读入的dask对象的分区数,我的groupby结果会发生变化。我的理解是dask利用分区来获得核外处理的好处,但它仍会返回适当的groupby输出。情况似乎并非如此,我正在努力找出需要哪些替代设置。下面是一个小例子:df=pd.DataFrame({'A':np.arange(100),'B':np.random.randn(100),'C':np.random.randn(100),'Grp1':np.repeat([1,2],50),'Grp2':[3,4,5,6],25)})test_dd1=dd

python - 在 PySpark 中进行排序归约的最有效方法是什么?

我正在分析2015年以来美国国内航类的准点率记录。我需要按尾号分组,并将每个尾号的所有航类的日期排序列表存储在数据库中,以供我的应用程序检索.我不确定实现这一目标的两个选项中哪一个是最好的。#Loadtheparquetfileon_time_dataframe=sqlContext.read.parquet('../data/on_time_performance.parquet')#Filterdowntothefieldsweneedtoidentifyandlinktoaflightflights=on_time_dataframe.rdd.map(lambdax:(x.Car

python - 在 pandas.DataFrame.query() 表达式中使用负数

我正在尝试按如下方式使用pandas.DataFrame.query()函数:expression_string='ColumnName该代码适用于正数,但是当负数传递给字符串时,如上所示,它返回以下错误:AttributeError:'UnaryOp'objecthasnoattribute'value'关于如何在DataFramequery()表达式中使用负数有什么建议吗?谢谢!! 最佳答案 我可以在具有特定数据类型的pandasv0.20.3上重现此错误;例如,np.float32。解决方法是显式转换为float。这是一个已知

python - pandas stack and unstack performance reduced after dataframe compression 并且比 R 的 data.table 差很多

这个问题是关于在堆叠和取消堆叠操作期间提升Pandas的性能。问题是我有一个大数据框(~2GB)。我关注了thisblog成功将其压缩到~150MB。但是,我的入栈和出栈操作会花费无限长的时间,以至于我必须终止内核并重新启动所有程序。我也用过R的data.table包,飞起来了,我在SO上对此进行了研究。似乎有人在Dataframeunstackperformance-pandas上指向map-reduce线程,但我不确定它有两个原因:stack和unstack在未压缩的情况下在pandas中运行良好,但由于内存问题,我无法在我的原始数据集上执行此操作。R的data.table很容易(

python - 在 IntelliJ IDEA 中编写并运行 pyspark

我正在尝试在IntelliJ中使用Pyspark,但我不知道如何正确安装它/设置项目。我可以在IntelliJ中使用Python,我可以使用pysparkshell,但我无法告诉IntelliJ如何找到Spark文件(导入pyspark导致“ImportError:Nomodulenamedpyspark”)。任何有关如何包含/导入spark以便IntelliJ可以使用它的技巧都将受到赞赏。谢谢。更新:我试过这段代码:frompysparkimportSparkContext,SparkConfspark_conf=SparkConf().setAppName("scavengesom

python - 将 pandas.DataFrame 转换为字节

我需要将存储在pandas.DataFrame中的数据转换为字节字符串,其中每一列都可以有一个单独的数据类型(整数或float)。这是一组简单的数据:df=pd.DataFrame([10,15,20],dtype='u1',columns=['a'])df['b']=np.array([np.iinfo('u8').max,230498234019,32094812309],dtype='u8')df['c']=np.array([1.324e10,3.14159,234.1341],dtype='f8')df看起来像这样:abc010184467440737095516151.32

python - PySpark 使用 IAM 角色访问 S3

我想知道PySpark是否支持使用IAM角色访问S3。具体来说,我有一个业务限制,我必须担任AWS角色才能访问给定的存储桶。这在使用boto时很好(因为它是API的一部分),但我找不到关于PySpark是否支持开箱即用的明确答案。理想情况下,我希望能够在本地以独立模式运行时承担一个角色,并将我的SparkContext指向该s3路径。我已经看到非IAM调用通常遵循:spark_conf=SparkConf().setMaster('local[*]').setAppName('MyApp')sc=SparkContext(conf=spark_conf)rdd=sc.textFile(

python - 如何移动 pandas DataFrame 中的多行?

我有以下Pandas数据框:importpandasaspddata={'one':pd.Series([1.],index=['a']),'two':pd.Series([1.,2.],index=['a','b']),'three':pd.Series([1.,2.,3.,4.],index=['a','b','c','d'])}df=pd.DataFrame(data)df=df[["one","two","three"]]onetwothreea1.01.01.0bNaN2.02.0cNaNNaN3.0dNaNNaN4.0我知道如何按列向上/向下移动元素,例如df.two=df