来自多个DataFrame的列总和

时间:2018-07-26 18:21:32

标签: python pandas

我有N个数据帧,分别命名为data1,data2 ... etc
每个数据框都有两列“ X”和“ Y”。每个数据框的长度都不相同。
我需要一个包含“ X”列总和的新数据框。 我只是尝试过类似的东西:

dataframesum = pd.DataFrame(0, index=np.arange(Some_number),columns = ['X']
for i in range(N):
dataframesum.add(globals()['Data%s'%i]['X'], fill_values = 0)

但是它不起作用(我不确定Some_number的值应该是什么),并且我遇到了下一个错误:

NotImplementedError: fill_value 0 not supported

1 个答案:

答案 0 :(得分:0)

您应该使用字典来存储任意数量的变量。

因此,假设您已将数据帧存储在gst-launch-1.0 -e rtspsrc location=${RTSP_SOURCE} ! queue ! rtph264depay \ ! h264parse ! matroskamux ! filesink location=capture.mkv 中。

然后您可以通过pd.concat串联它们:

dfs = {1: df1, 2: df2, 3: df3...}

最后,您可以通过pd.DataFrame.sum汇总列:

df_concat = pd.concat(list(dfs.values()))

要利用向量化操作,应避免进行手动sums = df_concat.sum() 循环。另外,for的使用很差,可以通过使用globals()dict来存储数据帧来避免。