У меня есть 2 набора из 92 столбцов. На данный момент все 92 столбца находятся в одной строке. Возможно ли перерисовать это так, чтобы 92 столбца были разделены на группы из 12, по существу имеющие 8 наборов из 12 данных (один под другим). мой код:Организация столбцов в пандах DataFrame
import glob
import pandas as pd
import os
os.chdir('C:/Users/peaches9/Desktop/')
Result = []
def FID_extract(filepath):
path_pattern = filepath
files = glob.glob(path_pattern)
dataframes = [pd.DataFrame.from_csv(f, index_col=None) for f in files]
new_dfa = pd.DataFrame()
for i, df in enumerate(dataframes):
colname = 'Run {}'.format(i+1)
selected_data = df['Unnamed: 3'].ix[12:17]
new_dfa[colname] = selected_data
#print new_dfa
#new_dfa.to_csv('FID_11169_Liquid.csv')
Result.append(new_dfa)
def TCD_extract(filepath):
path_pattern = filepath
files = glob.glob(path_pattern)
dataframes = [pd.DataFrame.from_csv(f, index_col=None) for f in files]
new_dfb = pd.DataFrame()
for i, df in enumerate(dataframes):
colname = 'Run {}'.format(i+1)
selected_data = df['Unnamed: 3'].ix[12:15]
new_dfb[colname] = selected_data
#print new_dfb
#new_dfb.to_csv('TCD_11169_liquid.csv')
Result.append(new_dfb)
FID_extract('C:/Users/peaches9/Desktop/Cryostat Verification/GC results/11169_Cryo_1bar/FID_0*') #files directory
TCD_extract('C:/Users/peaches9/Desktop/Cryostat Verification/GC results/11169_Cryo_1bar/TCD_0*')
dfc = pd.concat(Result)
Out:
Run 1..... Run 95 Run 96
12 5193791.85 5193915.21 5194343.34
13 1460874.04 1460929.33 1461072.84
14 192701.82 192729.55 192743.99
15 156836.4 156876.97 156889.26
16 98342.84 98346.7 98374.95
17 NaN NaN NaN
12 3982.69 3982.16 4017.66
13 2913008.04 2913627.33 2914075.7
14 226963.37 226956.1 227106.71
15 25208.2 25173.89 25197.88
Я хочу, чтобы все 96 колонн разделен на 8 X 12 колонок все друг под другом. Спасибо заранее.
EDIT:
мне удалось отделить dataframes в наборы 8 ... но я не могу получить каждый dataframe идти под друг друга. Они кончают справа, всегда!
dfc = pd.concat(Result)
df1 = dfc.ix[:,0:12]
df2 = dfc.ix[:,12:24]
df3 = dfc.ix[:,24:36]
df4 = dfc.ix[:,36:48]
df5 = dfc.ix[:,48:60]
df6 = dfc.ix[:,60:72]
df7 = dfc.ix[:,72:84]
df8 = dfc.ix[:,84:96]
pieces = [df1,df2,df3,df4,df5,df6,df7,df8]
df_final = pd.concat([df1, df2], levels = 1, axis = 3)
Я хочу 8 строк данных, каждый из которых содержит 12 наборов столбцов (от 1 до 12) ... Таким образом, первый набор данных будет выполняться с 1 по 12, а под ним будут выполняться 13 -24 ... и так далее. Вышеприведенный код делает это, но данные несколько искажены ... с каждым набором прогонов не под друг другом. – Joey
Я не понимаю вашу проблему. Если данные выровнены по неправильной оси, измените параметр 'axis = X'. Если вы хотите, чтобы данные печатались на консоль определенным образом, напишите функцию, которая печатает данные на консоли так, как вы хотите. Если вы пытаетесь создать структуру данных с 8 массивами формы 'N_samples * N_columns = N_samples * 12', вам нужно перейти к панелям, как я предложил. – Andreus
проблема была решена здесь: http://stackoverflow.com/questions/30840128/how-to-stack-data-frames-on-top-of-each-other-in-pandas – Joey