2017-05-16 47 views
0

那麼,我明白,gnuplot不是一個數據處理系統,而是一個繪圖軟件。但無論如何...在gnuplot中通過正則表達式過濾的所選列的總和

在python-pandas中,我可以通過傳遞regex to dataframe來選擇多個列。 df.filter(regex = '\.x$')將返回名爲'sw0.x','sw1.x'等的列。然後,我可以總結它們並繪製它們。

最近我搬到了pgfplots(膠乳),我在大數據集上使用了gnuplot和pgfplots。很多時候我需要繪製與給定正則表達式匹配的許多列的總和。我想要做一些像plot 'data.csv' SUM("\.x$") every 100 with line這樣的函數/宏/無論SUM接受正則表達式,並返回適當的列的總和。

回答

1

在這種情況下,最有可能需要將該處理部分「外包」到熊貓。例如,如果你創建一個腳本filter.py如:

#!/usr/bin/env python 
import pandas as pd 
import sys 

df = pd.read_csv(sys.argv[1], sep = ',', header = 0) 
s = df.filter(regex='\.x$', axis = 1).sum(axis = 1) 
s.to_csv(sys.stdout, sep = '\t') 

那麼您可以在gnuplot的「重用」它:

plot "<python filter.py data.csv" w lp