2016-05-19 11 views
1

を使用してTXTファイルを読み込む:私は「ValidDates」、「マックス」で辞書を作成しようとしていますPythonのエラーが私はtxtファイル次の形式を持っている「TempData.txt」持っているパンダ

CODE O/F Valid Date MAX MIN AVG 
K3T5 O 1995/01/01 51 36 44 
K3T5 O 1995/01/02 45 33 39 
K3T5 O 1995/01/03 48 38 43 

をし、その中の 'Min'要素。

私は次のことをしようとしています:

import pandas as pd 
df = pd.read_csv(r'C:\TempData.txt', sep = "\t", header = 0) 

df.columns.tolist() #prints: 'CODE', 'O/F', 'Valid Date', 'MAX', 'MIN', 'AVG' 
Max = df([4]) 

私はマックスcolumを分離しようとすると、私はエラーを取得:

TypeError: 'DataFrame' object is not callable 
+2

を' – jezrael

+0

' TypeError: 'DataFrame'オブジェクトは呼び出し可能ではありません。つまり、 'DataFrame'クラスは' __call__'関数を再実装していません。 '__call__'関数を再実装していないオブジェクトを呼び出すことはできません。 'df ['MAX']'と入力すると、その列を取得できます。 –

答えて

2

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

max_col = df['MAX'] 

print (max_col) 
0 51 
1 45 
2 48 
Name: MAX, dtype: int64 

4.カラムを選択したい場合iloc

max_col = df.iloc[:, 3] #3, because python counts 0,1,2,3 

print (max_col) 
0 51 
1 45 
2 48 
Name: MAX, dtype: int64 

まず、あなたはそれがread_csvにデフォルト値であるので、header=0を省略してdatetimeValid Dateを変換するためのparse_datesを追加することができます。

あなたがdictの異なるフォーマットをしたい場合は、列Valid DateMAXから必要dictMIN使用to_dict、パラメータorient追加しよう:私はあなたが `max_col = DF [ 'MAX']を使用することができると思う

df = pd.read_csv(r'C:\TempData.txt', sep = "\t", parse_dates=[2]) 
print (df) 
    CODE O/F Valid Date MAX MIN AVG 
0 K3T5 O 1995-01-01 51 36 44 
1 K3T5 O 1995-01-02 45 33 39 
2 K3T5 O 1995-01-03 48 38 43 


print (df[['Valid Date','MAX','MIN']]) 
    Valid Date MAX MIN 
0 1995-01-01 51 36 
1 1995-01-02 45 33 
2 1995-01-03 48 38 

print (df[['Valid Date','MAX','MIN']].to_dict()) 
{'MAX': {0: 51, 1: 45, 2: 48}, 
'MIN': {0: 36, 1: 33, 2: 38}, 
'Valid Date': {0: Timestamp('1995-01-01 00:00:00'), 1: Timestamp('1995-01-02 00:00:00'), 2: Timestamp('1995-01-03 00:00:00')}} 

print (df[['Valid Date','MAX','MIN']].to_dict(orient='split')) 
{'data': [['1995/01/01', 51, 36], ['1995/01/02', 45, 33], ['1995/01/03', 48, 38]], 'index': [0, 1, 2], 'columns': ['Valid Date', 'MAX', 'MIN']} 
+0

何か間違っていますか? – jezrael

関連する問題