I have a txt file "TempData.txt" which has the following format:
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
I am trying to create a dictionary with 'ValidDates', 'Max' and 'Min' elements in it.
I am trying the following:
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])
I get the error when I try to separate the Max colum:
TypeError: 'DataFrame' object is not callable
I think you can use:
max_col = df['MAX']
print (max_col)
0 51
1 45
2 48
Name: MAX, dtype: int64
If you want select 4.
column use 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
First you can omit header=0
, because it is default value in read_csv
and add parse_dates
for converting Valid Date
to datetime
.
If need dict
from columns Valid Date
, MAX
, MIN
use to_dict
, if you want different format of dict
, try add parameter 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']}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.