2016-11-19 6 views
2

データが3つのtxtファイル、4列の数字があります。これらを1つのデータフレーム(次元[3、n]にロードする必要があります.nはlenght私はSeries.from_csv()関数を使用することに決めましたが、私は出力を理解することができません。 私はこのコードを書いている:私はもっと奇怪見つける何Pandas.Series.from_csv()の出力を理解していない

0.039157 0 
0.039001 0 
0.038524 0 
0.038579 0 
0.038385 0 

names = glob.glob("*.txt") 
for i in names: 
    rank = pd.Series.from_csv(i,sep=" ",index_col = 3) 
    print rank 

そして、これは私に私のデータの1列(良いのthats)だけでなく、このようなゼロを1列埋め全体を印刷

[0 0 0 ..., 0 0 0] 
[0 0 0 ..., 0 0 0] 
[0 0 0 ..., 0 0 0] 
:私は

rank = pd.Series.from_csv(i,sep=" ",index_col = 3).values 

を使用するとき、私はこれを得ています

これは、このゼロがファイルから読み取られた値であることを意味しますか?それから、最初の列は何ですか?私は多くの方法を試しましたが、私はこれを理解できませんでした。

答えて

2

私はあなたが最初listdfsにすべてDataFramesを追加してからconcatを使用し、フィルタリング列にdelim_whitespace=Trueusecolsでより一般的なread_csvを使用することができると思う:

dfs = [] 
names = glob.glob("*.txt") 
for i in names: 
    rank = pd.read_csv(i,delim_whitespace=True,usecols=[3]) 
    print rank 
    dfs.append(rank) 

df = pd.concat(dfs, axis=1) 

それともsep='\s+'と - セパレータは、任意の空白です:

dfs = [] 
names = glob.glob("*.txt") 
for i in names: 
    rank = pd.read_csv(i,sep='\s+',usecols=[3]) 
    print rank 
    dfs.append(rank) 

df = pd.concat(dfs, axis=1) 

list comprehension

も使用できます。
files = glob.glob("*.txt") 
dfs = [pd.read_csv(fp, delim_whitespace=True,usecols=[3]) for fp in files] 
df = pd.concat(dfs, axis=1) 
関連する問題