Я совершенно новичок в Python и Panda Framework.Я пытаюсь обработать большой набор файлов (Excel) и группы, используя несколько имен столбцов.Каждый файл содержит следующие столбцы:
Site Dip Time TankId Product
ABC 10/09/2019 18:07:33 p.m. 1 diesel
.....
После указания столбца даты, когда я перечисляю типы данных;я получаю Dip Time как объект .почему?;
Объект сайта ID танка int64 Объект продукта Dip Time объект dtype: object
Также я получаю следующую ошибку;Почему столбец даты здесь интерпретируется как строка?Что я должен сделать, чтобы преодолеть это?
TypeError: '<=' not supported between instances of 'str' and 'Timestamp'
import pandas as pd
def read_dipsfile(writer):
atg_path = '/Users/ratha/PycharmProjects/data/dips'
files = os.listdir(atg_path)
df = pd.DataFrame()
dateCols = ['Dip Time']
for f in files:
data = pd.read_excel(os.path.join(atg_path, f), sheet_name='Tank Export', skiprows=[0], parse_dates=dateCols,
infer_datetime_format =True)
df = df.append(data)
print(df.dtypes)
x = df.groupby(['Site', 'Tank ID', 'Product'], as_index=False).apply(atg_aggregation)
x.to_excel(writer, sheet_name='DipsSummary')
def atg_aggregation(data):
count = data['Dip Time'].count()
minVal = data['Dip Time'].min()
maxVal = data['Dip Time'].max()
tankcount = data['Tank ID'].count()
productcount = data['Product'].count()
agg = {
'totalRecords': count,
'firstSeen': minVal,
'lastSeen': maxVal,
'tankCount': tankcount,
'productCount': productcount
}
return pd.Series(agg, index=['totalRecords', 'firstSeen', 'lastSeen', 'tankCount', 'productCount'])