我正在阅读一份指南,其中我们将表格数据切成 15 个块大小,然后对其进行处理。但我无法理解代码。我无法访问老师,因此我在这里另外询问了互联网没有针对我的问题的具体解决方案。谢谢这是代码,有人可以解释一下它究竟是如何在循环中获取每个值并计算平均值的吗?data_chunks = pd.read_csv("../data/microbiome.csv", chunksize=14)
mean_tissue = pd.Series({chunk.iloc[0].Taxon:chunk.Tissue.mean() for chunk in data_chunks})
1 回答
慕仙森
TA贡献1827条经验 获得超7个赞
我假设不同类型的“Taxon”有 14 个记录长,所以这就是为什么它们以 14 个长块遍历 DataFrame 的原因。(见第一行!chunksize=14
) Chunk 是 DataFrame 的一部分,类似于切片和索引:这里一个 chunk 将有 14 行和与原始 DataFrame 一样多的列。第一个块将包含前 14 行,第二个将包含后 14 行,依此类推。
接下来它创建一个 pandas Series,你可以把它想象成一个奇特的一维数组,或列表,或 DataFrame 的一维版本。(见pd.Series(...)
)
这个系列实例中会有什么?一本字典(见大括号!)。此字典中的键将是Taxon
块包含的类型,值将是Tissue
当前块(14 行)中值的平均值:
chunk.iloc[0].Taxon
选择块的第一行,然后是列中的值Taxon
chunk.Tissue.mean()
将选择块中的每个组织值(14 个值)然后取它的平均值chunk.iloc[0].Taxon : chunk.Tissue.mean()
将结合上述key : value
时尚价值观
他们对每个块都这样做:每次都向字典添加一个新的键值对(就像列表理解,只有这个是字典理解)。pandas Series 有一个接受字典的构造函数。
如果您还有任何其他问题,请随时提出,我会尽力回答。
添加回答
举报
0/150
提交
取消