首先:我是 Python 和数据分析的初学者,但我相信我对这些概念有足够的了解,因此您不必过度简化您的答案。
我的挑战是我必须分析大量的机器数据(超过两年的时间序列;24 个结构相同的 csv 文件,每个文件有 170 列,~250 万行,~2.6gb 大小)。
必须对这些数据进行相关性分析。最初需要的输出是一个 170x170 的相关矩阵。进一步的分析(滞后,不对称相关矩阵输入 x 输出)应推迟到下一步,而不是主要考虑您的答案。
我已经能够将其中一个文件读入数据帧(使用 Spyder 的 IPython 控制台;以我的 16GB 内存为代价)。
import pandas as pd
df = pd.read_csv(r"C:\MyFilePath\...\TestData.csv", sep=';', encoding='iso-8859-1')
In[]: len(df.columns)
Out[]: 170
In[]: len(df)
Out[]: 2678401
但从那以后我被卡住了......
pandas.DataFrame.corr 方法不能正常工作并且只返回(如果它有效)一个 10 x 10 矩阵有很多 NaN 值(在我看来,这只是一个不存在的皮尔逊相关性的显示(接近或等于)到零))。
我找到了几个关于如何将数据加载到我的数据帧中的描述,这超出了我的 RAM。然而,我无法完全理解加载块的概念,尤其是结合我的时间序列。
如果您能为我提供适当的提示或片段,我将不胜感激,以便我可以解决此问题。
理想情况下,结果是,我可以运行所有 csv 文件并获得所有参数所需的相关矩阵。
注意: 我不受熊猫的约束。如果您建议另一个以更好方式解决此问题的库,我很高兴听到您的解决方案。但是由于我公司的安全政策,我有义务不下载任何其他软件(或者更准确地说:它很复杂......)我手头唯一的其他选择是 MATLAB R2018.a
子衿沉夜
相关分类