草庐IT

pyspark-dataframes

全部标签

python - TypeError : first argument must be an iterable of pandas objects, 你传递了一个类型为 "DataFrame"的对象

我有一个大数据框,我尝试将其拆分并在concat之后拆分。我用df2=pd.read_csv('et_users.csv',header=None,names=names2,chunksize=100000)forchunkindf2:chunk['ID']=chunk.ID.map(rep.set_index('member_id')['panel_mm_id'])df2=pd.concat(chunk,ignore_index=True)但是返回错误TypeError:firstargumentmustbeaniterableofpandasobjects,youpassedano

python - 将 Pandas DataFrame 写入以换行符分隔的 JSON

我首先通过pandasread_csv()函数将CSV文件读取到Pandas数据框中。现在数据在一个实际的数据框中,我试着写这样的东西:forrowindf.iterrows():row[1].to_json(path_to_file)这行得通,但只有最后一行被保存到磁盘,因为我每次调用row[1].to_json(path_to_file)时都在重写文件。我尝试了其他一些文件处理选项,但无济于事。任何人都可以了解如何进行吗?谢谢! 最佳答案 要从数据帧df创建换行符分隔的json,请运行以下命令df.to_json("path/t

python - replace() 方法不适用于 Pandas DataFrame

我查过这个问题,大多数问题都是针对更复杂的替换。但是,就我而言,我有一个非常简单的数据框作为测试假人。目的是用nan替换数据框中任意位置的字符串,但这似乎不起作用(即不替换;没有任何错误)。我试过用另一个字符串替换,但它也不起作用。例如d={'color':pd.Series(['white','blue','orange']),'second_color':pd.Series(['white','black','blue']),'value':pd.Series([1.,2.,3.])}df=pd.DataFrame(d)df.replace('white',np.nan)输出仍然是

python - 将 python xgboost dMatrix 转换为 numpy ndarray 或 pandas DataFrame

我在他们的主git上关注一个xgboost示例,地址是-https://github.com/dmlc/xgboost/blob/master/demo/guide-python/basic_walkthrough.py#L64在这个例子中,他们正在读取直接放入dMatrix中的文件-dtrain=xgb.DMatrix('../data/agaricus.txt.train')dtest=xgb.DMatrix('../data/agaricus.txt.test')我查看了dMatrix代码,似乎没有办法简要查看数据的结构-正如我们通常在pandas中使用pandas.DataFr

python - DataFrame.interpolate() 推断尾随缺失数据

考虑以下示例,我们在其中设置示例数据集、创建MultiIndex、拆分数据帧,然后在逐行填充的位置执行线性插值:importpandasaspd#version0.14.1importnumpyasnp#version1.8.1df=pd.DataFrame({'location':['a','b']*5,'trees':['oaks','maples']*5,'year':range(2000,2005)*2,'value':[np.NaN,1,np.NaN,3,2,np.NaN,5,np.NaN,np.NaN,np.NaN]})df.set_index(['trees','loca

python - 为什么 len 在 DataFrame 上比在底层 numpy 数组上效率高得多?

我注意到在DataFrame上使用len比在底层numpy数组上使用len快得多。我不明白为什么。通过shape访问相同的信息也没有任何帮助。当我尝试获取列数和行数时,这更相关。我一直在争论使用哪种方法。我整理了以下实验,很明显我将在数据帧上使用len。但是有人可以解释为什么吗?fromtimeitimporttimeitimportpandasaspdimportnumpyasnpns=np.power(10,np.arange(6))results=pd.DataFrame(columns=ns,index=pd.MultiIndex.from_product([['len','l

python - 如何以 pythonic 方式填充 Pandas dataframe 缺失的记录?

我有一个像这样的Pandas数据框“df”:XYIX1IX2AA12030A22030A52030BB22030B42030它丢失了一些行,我想像这样填补中间的空白:XYIX1IX2AA12030A22030A3NaNNaNA4NaNNaNA52030BB22030B3NaNNaNB42030有没有pythonic的方法来做到这一点? 最佳答案 您需要构建完整的索引,然后使用数据框的reindex方法。像这样...importpandasimportStringIOdatastring=StringIO.StringIO("""\C

python - 将元组转换为 Pandas Dataframe 中的多个索引

我从这样的字典开始:dict={(100000550L,u'ActivityA'):{'bar__sum':14.0,'foo__sum':12.0},(100001799L,u'ActivityB'):{'bar__sum':7.0,'foo__sum':3.0}}当转换为DataFrame时,将(id,activitytype)的元组作为列标题:df=DataFrame(dict).transpose()bar__sumfoo__sum(100000550,ActivityA)1412(100001799,ActivityB)73如何将索引中的元组转换为MultiIndex?也就是

python - Pandas:在不知道列名的情况下重命名单个 DataFrame 列

我知道我可以重命名单个pandas.DataFrame列:drugInfo.rename(columns={'col_1':'col_1_new_name'},inplace=True)但我想在不知道其名称的情况下重命名列(基于其索引-虽然我知道字典没有它)。我想像这样重命名第1列:drugInfo.rename(columns={1:'col_1_new_name'},inplace=True)但是在DataFrame.columns字典中没有“1”条目,因此没有进行重命名。我怎样才能做到这一点? 最佳答案 应该工作:drugIn

python - pyspark 错误 : AttributeError: 'SparkSession' object has no attribute 'parallelize'

我在Jupyternotebook上使用pyspark。以下是Spark的设置方式:importfindsparkfindspark.init(spark_home='/home/edamame/spark/spark-2.0.0-bin-spark-2.0.0-bin-hadoop2.6-hive',python_path='python2.7')importpysparkfrompyspark.sqlimport*sc=pyspark.sql.SparkSession.builder.master("yarn-client").config("spark.executor.memo