python中使用datetime时出错
我正在尝试读取不同的excel文件,进行一些计算,为每个文件添加新行,最后连接这些文件。下面是我的代码:python中使用datetime时出错,python,datetime,Python,Datetime,我正在尝试读取不同的excel文件,进行一些计算,为每个文件添加新行,最后连接这些文件。下面是我的代码: import pandas as pd import os from xlwings import Book, Range, Sheet import xlrd import datetime from datetime import datetime, date path =r'C:\\Dell\\SUB\\20' import glob list_dfs = [] filenames
import pandas as pd
import os
from xlwings import Book, Range, Sheet
import xlrd
import datetime
from datetime import datetime, date
path =r'C:\\Dell\\SUB\\20'
import glob
list_dfs = []
filenames = glob.glob(path + "/*.xlsx")
list_dfs = []
for f in filenames:
df = pd.read_excel(f, ignore_index=True)
column=df["TIME_ACTUAL_DEPART"]
DT=df["TIMEPOINT_DWELL_1"].sum()
DT_sec=DT*60
exit =(df.iloc[-1,-1])
enter = (df.iloc[1,1])
TT=datetime.combine (date.today(),exit) - datetime.combine(date.today(), enter)
TTT=(TT.total_seconds() / 60)
TTT_sec=TTT*60
df.loc[-1] = [ '','' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' , TTT_sec, '', '','' ,'' ,DT_sec] # adding a row
df.index = df.index -1 # shifting index
dfs = pd.concat(list_dfs,axis=0)
writer = pd.ExcelWriter('C:\\Dell\\SUB\\20\\output1.xlsx')
dfs.to_excel(writer,'DWELL')
writer.save()
这是在我运行
KeyError回溯(最近一次呼叫最后一次)
在()
---->1 df.sort_值(列,轴=0,在位=True)
2.
三,
~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\frame.py in sort_values(self, by, axis, ascending, inplace, kind, na_position)
3184
3185 by = by[0]
-> 3186 k = self.xs(by, axis=other_axis).values
3187 if k.ndim == 2:
3188
~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\generic.py in xs(self, key, axis, level, drop_level)
2021
2022 if axis == 1:
-> 2023 return self[key]
2024
2025 self._consolidate_inplace()
~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\frame.py in __getitem__(self, key)
1956 if isinstance(key, (Series, np.ndarray, Index, list)):
1957 # either boolean or fancy integer index
-> 1958 return self._getitem_array(key)
1959 elif isinstance(key, DataFrame):
1960 return self._getitem_frame(key)
~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\frame.py in _getitem_array(self, key)
2000 return self.take(indexer, axis=0, convert=False)
2001 else:
-> 2002 indexer = self.loc._convert_to_indexer(key, axis=1)
2003 return self.take(indexer, axis=1, convert=True)
2004
~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\indexing.py in _convert_to_indexer(self, obj, axis, is_setter)
1229 mask = check == -1
1230 if mask.any():
-> 1231 raise KeyError('%s not in index' % objarr[mask])
1232
1233 return _values_from_object(indexer)
KeyError: '[datetime.time(22, 25, 59) datetime.time(22, 20, 33)\n datetime.time(22, 6, 47) datetime.time(22, 3, 53)\n datetime.time(22, 11, 35)] not in index'
'[datetime.time(22, 25, 59) datetime.time(22, 20, 33)\n datetime.time(22, 6, 47) datetime.time(22, 3, 53)\n datetime.time(22, 11, 35)] not in index'
这个问题通过使用
column=("TIME_ACTUAL_DEPART")
因为无法在python中为日期时间数据编制索引。sort\u values方法将列的名称作为参数,而不是列本身。您试图传递
df[“TIME\u实际值”]
,实际列,作为参数。请包含错误的完整堆栈跟踪。查看导致错误的行很有帮助。不要让人们猜测。此外,如果您可以显示数据样本(例如df.head()),这也很有帮助。
column=("TIME_ACTUAL_DEPART")