2017-10-19 25 views
1

複数の.csvファイルから1つの配列にデータを取得できません。私は.csvファイルからすべてのデータを得ることができます、私は単純なnumpyの配列にすべてを得ることができません。各.csvファイルの名前は私にとって重要です。最後に、.csvファイルの初期名でラベル付けされた列を持つPandas DataFrameを用意したいと思います。これは動作しません複数の.csvファイルから1つのDataFrameにデータをインポート

[[ 32.1, 31.1, 30.3, ..., 34.9, 33.9, 32.9] 
[ 17.3, 17.2, 17.2, ..., 17.5, 17.5, 17.2] 
[ 41.8, 41.1, 40.6, ..., 44.3, 43.4, 42.6] 
... 
[ 32.5, 32.2, 31.9, ..., 34.8, 34.1, 33.7]] 

が、私の目標です:私が本当にしたいことはあるとき

[array([ 32.1, 31.1, 30.3, ..., 34.9, 33.9, 32.9]) 
array([ 17.3, 17.2, 17.2, ..., 17.5, 17.5, 17.2]) 
array([ 41.8, 41.1, 40.6, ..., 44.3, 43.4, 42.6]) 
... 
array([ 32.5, 32.2, 31.9, ..., 34.8, 34.1, 33.7])] 

:私は一時や風を印刷するとき、私はこのような何かを得る

import glob 
import numpy as np 
import pandas as pd 

files = glob.glob("*.csv") 

temp_dict = {} 
wind_dict = {} 

for file in files: 
    data = pd.read_csv(file) 
    temp_dict[file[:-4]] = data['HLY-TEMP-NORMAL'].values 
    wind_dict[file[:-4]] = data['HLY-WIND-AVGSPD'].values 

temp = [] 
wind = [] 
name = [] 

for word in temp_dict: 
    name.append(word) 
    temp.append(temp_dict[word]) 
for word in wind_dict: 
    wind.append(wind_dict[word]) 

temp = np.array(temp)  
wind = np.array(wind) 

コード:

df = pd.DataFrame(temp, columns=name) 

o PandasのDataFrameを使用すると、各行が独自の配列になります。これは、すべての行に要素のみがあると考えられるため役に立ちません。私は問題が "配列(...)"であることを知っています。私はそれを取り除く方法を知りません。あなたの時間と配慮を事前に感謝します。

+0

を? – jezrael

+0

サンプルを追加できますか? – jezrael

答えて

1

私はあなたが使用することができると思う:

files = glob.glob("*.csv") 
#read each file to list of DataFrames 
dfs = [pd.read_csv(fp) for fp in files] 
#create names for each file 
lst4 = [x[:-4] for x in files] 
#create one big df with MultiIndex by files names 
df = pd.concat(dfs, keys=lst4) 

リシェイプと溶液の上、別途DataFrameの変更最後の行の場合: `array``に変換する前にtemp`は何

df = pd.concat(dfs, keys=lst4).unstack() 

df_temp = df['HLY-TEMP-NORMAL'] 
df_wind = df['HLY-WIND-AVGSPD'] 
関連する問題