繁体   English   中英

需要帮助合并数据点

[英]Need help combining data points

我有一个列表(现在)存在2列:t和volume,以及大约80000行,如下所示:

"t" "volume"
1 20
2 25
2 40
3 23
3 34
3 45

我已经使用numpy的np.loadtext创建了此列表

我现在想做的是添加所有具有相同t的数据点的体积,以创建这样的列表,我可以使用matplotlib进行绘图:

"t" "volume"
1 20
2 65
3 102

但是我不确定如何执行此操作,因为我不确定如何在代码中明确声明这一点。 有人可以帮我吗?

您可以使用熊猫非常简单地执行此操作:

In [3]: df
Out[3]: 
   t  volume
0  1      20
1  2      25
2  2      40
3  3      23
4  3      34
5  3      45

In [4]: df.groupby('t').sum()
Out[4]: 
   volume
t        
1      20
2      65
3     102

您总是可以遍历2列表内的所有值,并将计数添加到正在运行的选项卡中,如下所示(伪代码)

points = [0] * number_of_points
for i in range(number_of_points):
    points[t_value] += volume_value

这将创建一个总和列表,其中t值是列表索引,而总和是元素。 请注意,我的答案是Python 3,因此您必须对其进行一些调整才能使其在Python 2中运行

或者您可以使用numpy sum函数以pivot_table的形式执行此操作:

# Create empty dataframe
df = pd.DataFrame()
df['t'] = [1,2,2,3,3,3]
df['volume'] = [20,25,40,23,34,45]

#margins=True adds an extra row with the total sum of the column volume 
pd.pivot_table(df,index=["t"],aggfunc=[np.sum],margins=True)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM