2015-06-10 58 views
0

选择从数据帧的行和列目前,我有以下代码:如何使用熊猫

import glob 
import pandas as pd 

path_pattern = 'C:/Users/Joey/Desktop/GC results/Results/FID_00*' 
files = glob.glob(path_pattern) 
dataframes = [pd.DataFrame.from_csv(f, index_col=None) for f in files] 

new_df = pd.DataFrame() 

for i in dataframes: 
    selected_data = i['Unnamed: 3'].ix[12:16] 
    new_df['Run'] = selected_data 
    print new_df 

出来:

 Run 
12 5187666.22 
13 1453339.93 
14 193334.09 
15 157630.92 
16 98943.96 
      Run 
12 5188329.28 
13 1455640.31 
14  193074 
15 157420.83 
16 98791.72 
      Run 
12 5188943.17 
13 1456575.95 
14 192977.15 
15 157325.56 
16 98699.43 
      Run 
12 5188675.1 
13 1456622.43 
14 192796.99 
15 157174.61 
16 98598.53 
      Run 
12 5187783.26 
13 1456612.29 
14 192703.05 
15 157078.52 
16 98511.48 

目前,这些选择都在同一列。是否有可能重新组织这样的每个选择12-16是一个单独的列?我想run1,run2,...,run6是6个独立的列。

+0

你大熊猫文档中检查?它详细解释了如何选择行和列。 –

+0

只要在我的答案中显示的每次向'new_df'添加新列时,只需重命名'new_df ['Run']'中的Colum'Run'即可。 – albert

+0

这不会遍历我先前创建的全部6个数据帧。它给了我df1 * 6列 – Joey

回答

1

选择所需使用使用.ix并添加选择的数据(类型:pd.Series)数据到一个新的数据帧:

# create new dataframe for selected data 
new_df = pd.DataFrame() 

# placeholder for six selections (i = 1...6) 
for i, df in enumerate(dataframes): 
    colname = 'Run {}'.format(i+1) 
    selected_data = i['Unnamed: 3'].ix[12:16] 
    new_df[colname] = selected_data 
    print new_df 
+0

感谢您。但是,将数据帧1添加到所有6列。我如何将6个不同的数据框添加到6个不同的列? – Joey

+0

只要在我的答案中显示的每次向'new_df'添加新列的'new_df ['Run']'中重命名colum'Run'。 – albert