我有一个包含7列['Date', 'Time', 'Open', 'High', 'Low', 'Close', 'Volume']
的csv文件
问题是我试图设置一个日期时间索引,但它不起作用可能是因为日期和时间是两个单独的列。
以下是代码:
import pandas as pd
column_names = ['Date', 'Time', 'Open', 'High', 'Low','Close', 'Volume']
df = pd.read_csv(r"E:\Tutorial\EURUSD60.csv", header=None, names=column_names)
df['DateTime'] = pd.to_datetime(df['Date', 'Time'])
print(df.head())
这是错误:
C:\ Users \ sydgo \ Anaconda3 \ python.exe E:/Tutorial/language.py Traceback (最近一次调用最后一次):文件 " C:\用户\ sydgo \ Anaconda3 \ lib中\站点包\大熊猫\芯\索引\ base.py&#34 ;, 第2442行,在get_loc中 返回self._engine.get_loc(key)文件" pandas_libs \ index.pyx",第132行,在pandas._libs.index.IndexEngine.get_loc文件中 " pandas_libs \ index.pyx",第154行,in pandas._libs.index.IndexEngine.get_loc文件 " pandas_libs \ hashtable_class_helper.pxi",第1210行,在 pandas._libs.hashtable.PyObjectHashTable.get_item文件 " pandas_libs \ hashtable_class_helper.pxi",第1218行,在 pandas._libs.hashtable.PyObjectHashTable.get_item KeyError:(' Date', '时间&#39)
在处理上述异常期间,发生了另一个异常:
回溯(最近一次调用最后一次):文件" E:/Tutorial/language.py", 7号线,在 df ['日期时间'] = pd.to_datetime(df ['日期','时间'])文件" C:\ Users \ sydgo \ Anaconda3 \ lib中\站点包\大熊猫\芯\ frame.py&#34 ;, 第1964行, getitem return self._getitem_column(key)File" C:\ Users \ sydgo \ Anaconda3 \ lib \ site-packages \ pandas \ core \ frame.py", 第1971行,在_getitem_column中 return self._get_item_cache(key)File" C:\ Users \ sydgo \ Anaconda3 \ lib \ site-packages \ pandas \ core \ generic.py", 第1645行,在_get_item_cache中 values = self._data.get(item)文件" C:\ Users \ sydgo \ Anaconda3 \ lib \ site-packages \ pandas \ core \ internals.py", 3590行,在得到 loc = self.items.get_loc(item)File" C:\ Users \ sydgo \ Anaconda3 \ lib \ site-packages \ pandas \ core \ indexes \ base.py", 第2444行,在get_loc中 return self._engine.get_loc(self._maybe_cast_indexer(key))File" pandas_libs \ index.pyx",第132行,in pandas._libs.index.IndexEngine.get_loc文件 " pandas_libs \ index.pyx",第154行,in pandas._libs.index.IndexEngine.get_loc文件 " pandas_libs \ hashtable_class_helper.pxi",第1210行,在 pandas._libs.hashtable.PyObjectHashTable.get_item文件 " pandas_libs \ hashtable_class_helper.pxi",第1218行,在 pandas._libs.hashtable.PyObjectHashTable.get_item KeyError:(' Date', '时间&#39)
答案 0 :(得分:1)
如果您简化了代码,则会在此处看到错误:
df['Date', 'Time']
那是因为你通过两个字符串索引DataFrame一次,但是你希望通过两个字符串中的每个字符串将其索引两次。那就是:
df[['Date', 'Time']]
但是,这可能会失败,因为to_datetime
需要字符串,而不是字符串对:
pd.to_datetime(df['Date', 'Time'])
在这种情况下试试这个:
pd.to_datetime(df.Date + ' ' + df.Time)