草庐IT

pyspark-dataframes

全部标签

python - 从 Pyspark 中的 RDD 中提取字典

这是一道作业题:我有一个RDD,它是元组集合。我还有从每个输入元组返回字典的函数。不知何故,与reduce函数相反。有了map,我可以很容易地从元组的RDD到字典的RDD。但是,由于字典是(key,value)对的集合,我想将字典的RDD转换为(key,value)元组的RDD每个字典的内容。那样的话,如果我的RDD包含10个元组,那么我会得到一个RDD包含10个字典和5个元素(例如),最后我得到一个RDD50个元组。我认为这一定是可能的,但是如何实现呢?(可能是我不知道这个操作英文怎么叫的问题) 最佳答案 我的2美分:有一个名为“

python - PySpark 中的列过滤

我有一个从Hive表加载的数据帧df,它有一个时间戳列,比如ts,字符串类型的格式为dd-MMM-yyhh.mm.ss.MSa(转换为python日期时间库,这是%d-%b-%y%I.%M.%S.%f%p)。现在我想过滤数据框中最近五分钟的行:only_last_5_minutes=df.filter(datetime.strptime(df.ts,'%d-%b-%y%I.%M.%S.%f%p')>datetime.now()-timedelta(minutes=5))但是,这不起作用,我收到了这条消息TypeError:strptime()argument1mustbestring,

python - 如何展平 pandas DataFrame 中的分层列索引?

假设我有一个pandas.DataFrame,其列的层次索引如下:importpandasaspdcolumns=pd.MultiIndex.from_product([list('AB'),list('ab')])df=pd.DataFrame(np.arange(8).reshape((2,4)),columns=columns)printdf输出[1]:ABabab0012314567我想展平列索引,使其看起来如下所示:AaAbBaBb0012314567我试过了defflatten(col):col.name=''.join(col.name)returncoldf.apply

python - 无法将 DataFrame 保存到 HDF5 ("object header message is too large")

我在Pandas中有一个DataFrame:In[7]:my_dfOut[7]:Int64Index:34entries,0to0Columns:2661entries,airplanetozoodtypes:float64(2659),object(2)当我尝试将其保存到磁盘时:store=pd.HDFStore(p_full_h5)store.append('my_df',my_df)我得到:File"H5A.c",line254,inH5Acreate2unabletocreateattributeFile"H5A.c",line503,inH5A_createunabletoc

python - 'CSV 不存在' - Pandas DataFrame

这个问题在这里已经有了答案:WindowspathinPython(5个答案)关闭4年前。我无法将csv文件读取到pandas数据框中。我是Pandas的新手,这阻碍了我的进步。我已阅读文档并搜索解决方案,但我无法继续。我尝试了以下无济于事......importpandasaspdimportnumpyasnppd.read_csv('C:\Users\rcreedon\Desktop\TEST.csv')pd.read_csv("C:\Users\rcreedon\Desktop\TEST.csv")和带/不带引号的类似排列。它吐出一个以以下结尾的大型复合错误:IOError:Fi

python - 获取 Dataframe Pandas 中最高值的列和行索引

我想知道是否有办法找到数据框中最大值的位置(列和行索引)。因此,例如,如果我的数据框如下所示:ABCDE01009112618010671591220671562331251510584732872251如何使用Pandas获得如下所示的结果:[0,'A']? 最佳答案 使用np.argmaxNumPy的argmax可以提供帮助:>>>df.stack().index[np.argmax(df.values)](0,'A')步骤df.values是一个二维NumPy数组:>>>df.valuesarray([[100,9,1,12,

python - 使用 pandas Grouper 按十年开始对 DataFrame 进行分组

我有一个从01-01-1973到12-31-2014的日常观察数据框。一直在使用PandasGrouper,到目前为止,每个频率的一切都运行良好:我想按70年代、80年代、90年代等年代分组。我试着这样做importpandasaspddf.groupby(pd.Grouper(freq='10Y')).mean()但是,这会将它们分组为73-83、83-93等。 最佳答案 pd.cut还可以指定具有指定开始年份的常规频率。importpandasaspddfdateval01970-01-0100:01:18111979-12-3

python - Pandas Dataframe 中的 MultiIndex Groupby

我有一个数据集,其中包含按年份划分的国家和经济指标统计数据,组织方式如下:CountryMetric2011201220132014USAGDP7402USAPop.2303GBGDP8707GBPop.2600FRGDP5001FRPop.1105我如何在pandas中使用MultiIndex创建一个数据框,该数据框仅按年份显示每个国家/地区的GDP?我试过:df=data.groupby(['Country','Metric'])但它没有正常工作。 最佳答案 在这种情况下,您实际上不需要groupby。您也没有MultiInde

python - 将 Pandas DataFrame 转换为 Spark DataFrame

我之前问过一个关于如何Convertscipysparsematrixtopyspark.sql.dataframe.DataFrame的问题,并在阅读提供的答案以及thisarticle后取得了一些进展.我最终找到了以下用于将scipy.sparse.csc_matrix转换为pandas数据帧的代码:df=pd.DataFrame(csc_mat.todense()).to_sparse(fill_value=0)df.columns=header然后我尝试使用建议的语法将pandas数据帧转换为spark数据帧:spark_df=sqlContext.createDataFram

python - DataFrame的一列为字符串时设置WithCopyWarning

我收到以下代码的SettingWithCopyWarning:rain=DataFrame({'data':['1','2','3','4'],'value':[1,-1,1,1]})rain.value[rain.value虽然我没有收到警告rain=DataFrame({'data':[1,2,3,4],'value':[1,-1,1,1]})rain.value[rain.value唯一的区别是“数据”列在第一个DataFrame中是字符串,在第二个DataFrame中是数字。难道我做错了什么?有没有不同的(首选?)方法来做到这一点?至少不应该始终如一地应用警告吗?