首先:我是 Python 和數(shù)據(jù)分析的初學(xué)者,但我相信我對這些概念有足夠的了解,因此您不必過度簡化您的答案。我的挑戰(zhàn)是我必須分析大量的機(jī)器數(shù)據(jù)(超過兩年的時(shí)間序列;24 個(gè)結(jié)構(gòu)相同的 csv 文件,每個(gè)文件有 170 列,~250 萬行,~2.6gb 大?。?。必須對這些數(shù)據(jù)進(jìn)行相關(guān)性分析。最初需要的輸出是一個(gè) 170x170 的相關(guān)矩陣。進(jìn)一步的分析(滯后,不對稱相關(guān)矩陣輸入 x 輸出)應(yīng)推遲到下一步,而不是主要考慮您的答案。我已經(jīng)能夠?qū)⑵渲幸粋€(gè)文件讀入數(shù)據(jù)幀(使用 Spyder 的 IPython 控制臺;以我的 16GB 內(nèi)存為代價(jià))。import pandas as pddf = pd.read_csv(r"C:\MyFilePath\...\TestData.csv", sep=';', encoding='iso-8859-1')In[]: len(df.columns)Out[]: 170In[]: len(df)Out[]: 2678401但從那以后我被卡住了......pandas.DataFrame.corr 方法不能正常工作并且只返回(如果它有效)一個(gè) 10 x 10 矩陣有很多 NaN 值(在我看來,這只是一個(gè)不存在的皮爾遜相關(guān)性的顯示(接近或等于)到零))。我找到了幾個(gè)關(guān)于如何將數(shù)據(jù)加載到我的數(shù)據(jù)幀中的描述,這超出了我的 RAM。然而,我無法完全理解加載塊的概念,尤其是結(jié)合我的時(shí)間序列。如果您能為我提供適當(dāng)?shù)奶崾净蚱?,我將不勝感激,以便我可以解決此問題。理想情況下,結(jié)果是,我可以運(yùn)行所有 csv 文件并獲得所有參數(shù)所需的相關(guān)矩陣。注意: 我不受熊貓的約束。如果您建議另一個(gè)以更好方式解決此問題的庫,我很高興聽到您的解決方案。但是由于我公司的安全政策,我有義務(wù)不下載任何其他軟件(或者更準(zhǔn)確地說:它很復(fù)雜......)我手頭唯一的其他選擇是 MATLAB R2018.a
1 回答

子衿沉夜
TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
Pandas df.corr 給出了一個(gè)相關(guān)矩陣 NxN,其中 N 是列數(shù)。我用 200 列嘗試了它并且它有效。
最可能的原因是您的數(shù)據(jù)不干凈。如果 pandas 發(fā)現(xiàn)相關(guān)操作不可接受的數(shù)據(jù)點(diǎn),它會(huì)排除該列。嘗試創(chuàng)建一個(gè)只有數(shù)字和一個(gè)字段中只有一個(gè)字符串的數(shù)據(jù)框,你就會(huì)明白我的意思。
如果數(shù)據(jù)狀態(tài)不好,那也可以解釋為什么有這么多nan。我認(rèn)為您必須對數(shù)據(jù)進(jìn)行一些清理和預(yù)處理。
添加回答
舉報(bào)
0/150
提交
取消