我有一个大的数据集要分析,我需要查看多个特性(Flags(的不同值。我正在尝试运行一个for循环,如下所示:
d= {}
name_list = ["ultfi_ind", "status"] # Add names of columns here
for x in name_list:
d["{0}".format(x)] = test_df.select(x).distinct().collect() # Please change df name
dist_val = pd.DataFrame.from_dict(d)
在这里,我在name_list列表中指定列名,然后在for循环中,我在每个列中查找不同的值,并将输出保存在字典中。
最后,我试图将所有内容合并到一个数据帧中,但这是不可能的,因为列的长度不相同。
我知道可以通过填充来做到这一点,但我发现这是一个过于复杂的解决方案,我想知道是否有一种明智的方法来实现这一点。
请注意,由于我的数据集很大,所以我在spark环境中运行此程序。
我认为最终输出是一个CSV文件/Dataframe,其中标头是name_list(上面(中提到的列的名称,下面列出了不同的值。
d={}name_list=["ultfi_ind","status"]#在此处添加列的名称对于name_list中的x:d["{0}".format(x(]=test_df.select(x(.dispinct((.collect((#请更改df名称
dist_val=pd.DataFrame.from_dict(d(
您所说的是数据分析。在那里,pandas.dataframe有一个描述功能,可以开始你的旅程。
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.describe.html#
如果你想要更图形化的东西,可以看看这篇关于数据科学的文章。
https://towardsdatascience.com/3-tools-for-fast-data-profiling-5bd4e962e482
如果你想自己滚,你可以。我不会为你编写代码,因为你不会学习。但随信附上一个我会使用的算法。
PD_4所有这些数据都可以作为数据帧输出,并保存为您喜欢的格式。
最后但同样重要的是,有一个替代考拉的spark.topandas库。这允许您将spark数据帧转换为pandas数据帧,以使用其中一些预构建的函数。
https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.toPandas.html