从 Python 中的大文件中绘制数据

Plotting data from large file in Python

我有一个大文件 (2 GB)。我想在 scatterplot 中绘制其中的数据。数据在文件中具有以下格式。

day block1  block2  block3  .....
1   34.89   88.90   67.89   .....
2   77.890  33.56   76.98   .....
3   67.12   67.89   55.89   .....
... .....   .....   .....   .....

pltData 将是

列的平均值列表
pltData = [avg_block1, avg_block2, avg_block3, .....]

pltXpltY 是有限列表。为了从名为 pltData 的列表中绘制数据,我使用以下代码:

from matplotlib.colors import ListedColormap, LinearSegmentedColormap
import matplotlib.pyplot as plt
import matplotlib.cm as cm

FIGURE = plt.Figure()
SUBPLOT1 = FIGURE.add_subplot(121)
SUBPLOT1.set_xlabel('x distance')
SUBPLOT1.set_ylabel('y distance')
data1 = {'x-distance' : pltX , 'y_distance' : pltY}
df3 = DataFrame(data1, columns=['x-distance','y_distance'])
plot1= SUBPLOT1.scatter(df3['x-distance'],df3['y_distance'], marker='o', s=15, linewidths=0.1, c=pltData, cmap='rainbow', vmin=min(pltData), vmax=max(pltData))
FIGURE.colorbar(plot1, ax=SUBPLOT1)

但是,对于2GB这样大的文件,创建列表pltData是不可能的,因为行数和列数都很大。有人可以指导我如何绘制数据吗?

您可以使用 pandas 包来加载您的数据,然后从那里获取列的平均值。像这样,

import pandas as pd

pltData = pd.read_csv('my2gbdata.csv')  
pltData = pltData.mean()

这将为您提供每列的平均值,您可以从那里根据需要使用它。