我有一個包含60列數據的數據框(列1 = I 1,列2 = S 1 ....列3 = I 2,列4 = S 2。 。)等等)...從pandas中的同一數據幀的列中繪製數據
我想創建一個函數,每次選擇兩列進行切片,繪圖和查找切片的積分。我可以做兩列,但我不知道如何實現一個函數來運行所有60列。到目前爲止,我有以下幾點:
df = pd.DataFrame.from_csv(filepath, index_col =None)
df_slice =df.iloc[23500:25053]
R = df_slice['I 1']
I = df_slice['S 1']
rcParams['figure.figsize']= 10,5
plt.plot(R, I)
plt.xlabel('cm-1')
plt.ylabel('Hz')
#integration of peak
area = trapz(R)
print area
的功能:
def integrate_peak(filepath):
df = pd.DataFrame.from_csv(filepath, index_col =None)
for row in df:
..........slice
..........overlay plots
..........get integral for each plot curve
輸出:在一個單獨的數據幀
任何幫助將
30個積分答案不勝感激。
編輯:
我已經試過這樣:
def get_slice():
df = pd.DataFrame.from_csv(filepath, index_col =None)
for i in range(1,31):
df_slice = df.iloc[23500:25053]
R = df_slice['I %i' %i]
I = df_slice['S %i' %i]
plt.plot(R,I)
area = trapz(R)
print area
get_slice()
這給我的30個地塊的覆蓋,但是給了我30個值整體(全部爲相同數量)
是不可能對所有列進行簡單循環,例如,使用'範圍內的切片(1,31)'等等?要選擇正確的列,您可以使用'df_slice ['I%i'%slice]'等等。 – Pilik
將會很有趣,您將如何設置集成邊界。此外,它看起來像下面有第二個高峯。你說明了嗎? – Moritz