用Python从大文件打印数据

2024-10-03 06:20:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个大文件(2GB)。我想在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大小的文件,由于行和列的数量很大,因此无法创建listpltData。有人能告诉我如何绘制数据吗


Tags: 文件数据import列表matplotlib绘制distanceavg
1条回答
网友
1楼 · 发布于 2024-10-03 06:20:02

您可以使用pandas包来加载数据,然后从中进行平均,以获得列的平均值。像这样的,

import pandas as pd

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

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

相关问题 更多 >