草庐IT

pyspark-dataframes

全部标签

python - 在 Pandas DataFrame 中分隔值高于特定阈值的连续区域

我有一个索引和值介于0和1之间的PandasDataframe,如下所示:60.04703370.04765080.05406790.064767100.073183110.077950我想检索超过某个阈值(例如0.5)的超过5个连续值的区域的起点和终点的元组。这样我就会有这样的东西:[(150,185),(632,680),(1500,1870)]第一个元组属于从索引150开始的区域,在行中有35个值都在0.5以上,并以索引185结束(不包含)。我开始像这样只过滤0.5以上的值df=df[df['values']>=0.5]现在我有这样的值(value)观:6320.54570063

python - 将大型 Pandas Dataframes 分块写入 CSV 文件

如何将大型数据文件分block写入CSV文件?我有一组大型数据文件(100万行x20列)。但是,我只对数据文件的5列左右感兴​​趣。我想通过仅使用感兴趣的列制作这些文件的副本来简化操作,这样我就可以使用较小的文件进行后期处理。所以我打算将文件读入数据框,然后写入csv文件。我一直在研究将大数据文件分block读取到数据帧中。但是,我还没有找到任何关于如何将数据分block写入csv文件的信息。这是我现在正在尝试的,但这不会附加csv文件:withopen(os.path.join(folder,filename),'r')assrc:df=pd.read_csv(src,sep='\t

python - 找不到 key : _PYSPARK_DRIVER_CALLBACK_HOST

我正在尝试运行这段代码:importpysparkfrompyspark.sqlimportSparkSessionspark=SparkSession.builder\.master("local")\.appName("WordCount")\.getOrCreate()df=spark.createDataFrame([(1,144.5,5.9,33,'M'),(2,167.2,5.4,45,'M'),(3,124.1,5.2,23,'F'),(4,144.5,5.9,33,'M'),(5,133.2,5.7,54,'F'),(3,124.1,5.2,23,'F'),(5,129

python - 使用距离矩阵计算 Pandas Dataframe 中行之间的距离

我有以下PandasDataFrame:In[31]:importpandasaspdsample=pd.DataFrame({'Sym1':['a','a','a','d'],'Sym2':['a','c','b','b'],'Sym3':['a','c','b','d'],'Sym4':['b','b','b','a']},index=['Item1','Item2','Item3','Item4'])In[32]:print(sample)Out[32]:Sym1Sym2Sym3Sym4Item1aaabItem2accbItem3abbbItem4dbda我想根据这个距离矩阵找

python - PySpark - 对数据框中的一列求和并将结果作为 int 返回

我有一个带有一列数字的pyspark数据框。我需要对该列求和,然后将结果作为int返回到python变量中。df=spark.createDataFrame([("A",20),("B",30),("D",80)],["Letter","Number"])我执行以下操作来对列求和。df.groupBy().sum()但是我得到了一个数据框。+-----------+|sum(Number)|+-----------+|130|+-----------+我会将130作为存储在变量中的int返回,以便在程序的其他地方使用。result=130 最佳答案

python - 如何使用 Pandas 将二维表 (DataFrame) 反转为一维列表?

我正在Python/Pandas中寻找将二维表反转为一维列表的技巧。我通常利用Excel函数来执行此操作,但我相信有一种智能的Python方法来执行此操作。步骤Excel方式的更多细节:http://www.extendoffice.com/documents/excel/2461-excel-reverse-pivot-table.html 最佳答案 此类操作也可以使用pd.melt完成,它取消了DataFrame的透视。如果DataFramedf看起来像这样:rowlabelsTueWedThuSatSunFriMon0Appl

python - Pandas DataFrame 步骤图 : where ="post"

我想知道如何通过matplotlibswhere="post"进入Pandas情节。importnumpyasnpimportpandasaspddf=pd.DataFrame(np.random.randn(36,3))df.plot(drawstyle="steps",linewidth=2)#thisdoesn'tworkdf.plot(drawstyle="steps",where='post')有谁知道如何实现这一点?提前致谢! 最佳答案 你只需要指定drawstyle="steps-post":df=pd.DataFra

python - PySpark DataFrame 上的 Sum 操作在类型正常时给出 TypeError

我在PySpark中有这样的DataFrame(这是一次take(3)的结果,dataframe很大):sc=SparkContext()df=[Row(owner=u'u1',a_d=0.1),Row(owner=u'u2',a_d=0.0),Row(owner=u'u1',a_d=0.3)]相同的owner将有更多的行。我需要做的是在分组后对每个所有者的字段a_d的值求和,如b=df.groupBy('owner').agg(sum('a_d').alias('a_d_sum'))但这会引发错误TypeError:unsupportedoperandtype(s)for+:'int

python - Pandas DataFrame 在复杂的 'if' 条件下使用前一行值来确定当前值

我想知道是否有更快的方法来执行以下循环?也许使用应用或滚动应用功能来实现这一点基本上,我需要访问前一行的值以确定当前单元格值。df.ix[0]=(np.abs(df.ix[0])>=So)*np.sign(df.ix[0])foriinrange(1,len(df)):forcolinlist(df.columns.values):if((df[col].ix[i]>1.25)&(df[col].ix[i-1]==0))|:df[col].ix[i]=1elif((df[col].ix[i]=0.5)&(df[col].ix[i-1]>0)):df[col].ix[i]=df[col]

python - 如何离散化 pandas DataFrame 中的值并转换为二进制矩阵?

我的意思是这样的:我有一个DataFrame,其中的列可能是分类的或名义的。对于每个观察(行),我想生成一个新行,其中变量的每个可能值现在都是它自己的二进制变量。例如这个矩阵(第一行是列标签)'a''b''c'one0.20two0.41two0.90three0.12one0.04two0.25会被转换成这样:'a''b''c'onetwothree[0.0,0.2)[0.2,0.4)[0.4,0.6)[0.6,0.8)[0.8,1.0]01234510001000100000010000010100000100000110000000110000001000100100000000