我有一个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
我正在尝试使用' ValidDates' Max' Max'和' 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])
当我尝试分离Max colum时出现错误:
TypeError: 'DataFrame' object is not callable
答案 0 :(得分: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
首先,您可以省略header=0
,因为它是read_csv
中的默认值,并添加parse_dates
以将Valid Date
转换为datetime
。
如果需要dict
列Valid Date
,MAX
,MIN
使用to_dict
,如果您需要dict
的不同格式,请尝试添加参数orient
:
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']}