我有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
答案 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
来存储数据帧来避免。