[英]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.