Python 为什么可以';我是否使用日期作为元组索引的一部分来搜索数据集中的一行?

Python 为什么可以';我是否使用日期作为元组索引的一部分来搜索数据集中的一行?,python,pandas,datetime,tuples,Python,Pandas,Datetime,Tuples,我试图搜索我制作的一个以元组为索引的索引。元组的第一部分是日期,第二部分是外汇对。我尝试了一些方法,但似乎无法使用日期格式的字符串作为带有.loc或.ix的元组的一部分进行搜索 我的df看起来像这样: Open Close (11-01-2018, AEDAUD) 0.3470 0.3448 (11-01-2018, AEDCAD) 0.3415 0.3408 (11-01-2018, AEDCHF) 0.2663 0.2656 (

我试图搜索我制作的一个以元组为索引的索引。元组的第一部分是日期,第二部分是外汇对。我尝试了一些方法,但似乎无法使用日期格式的字符串作为带有.loc或.ix的元组的一部分进行搜索

我的df看起来像这样:

                        Open   Close
(11-01-2018, AEDAUD)  0.3470  0.3448
(11-01-2018, AEDCAD)  0.3415  0.3408
(11-01-2018, AEDCHF)  0.2663  0.2656
(11-01-2018, AEDDKK)  1.6955  1.6838
(11-01-2018, AEDEUR)  0.2277  0.2261
以下是完整的代码:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

forex_11 = pd.read_csv('FOREX_20180111.csv', sep=',', parse_dates=['Date'])
forex_12 = pd.read_csv('FOREX_20180112.csv', sep=',', parse_dates=['Date'])
time_format = '%d-%m-%Y'

forex = forex_11.append(forex_12, ignore_index=False)
forex['Date'] = forex['Date'].dt.strftime(time_format)
GBP = forex[forex['Symbol'] == "GBPUSD"]
forex.index = list(forex[['Date', 'Symbol']].itertuples(index=False, name=None))

forex_open_close = pd.DataFrame(np.array(forex[['Open','Close']]), index=forex.index)
forex_open_close.columns = ['Open', 'Close']
print(forex_open_close.head())
print(forex_open_close.ix[('11-01-2018', 'GBPUSD')])

如何获取索引为('11-01-2018','GBPUSD')的行?

能否尝试使用括号将元组放入列表中

像这样:

print(forex_open_close.ix[[('11-01-2018', 'GBPUSD')]])

你能试着用括号把元组放到列表中吗

像这样:

print(forex_open_close.ix[[('11-01-2018', 'GBPUSD')]])

我建议使用熊猫。在您的情况下,您可以执行以下操作:

tuples = list(data[['Date', 'Symbol']].itertuples(index=False, name=None))
data.index = pd.MultiIndex.from_tuples(tuples, names=['Date', 'Symbol'])

# And then to index
data.loc['2018-01-11', 'AEDCAD']

我建议使用熊猫。在您的情况下,您可以执行以下操作:

tuples = list(data[['Date', 'Symbol']].itertuples(index=False, name=None))
data.index = pd.MultiIndex.from_tuples(tuples, names=['Date', 'Symbol'])

# And then to index
data.loc['2018-01-11', 'AEDCAD']

我尝试使用多索引和tbh,我更喜欢它,但当我尝试数据时。loc['2018-01-11',AEDCAD']我得到axis=self.obj.\u get\u axis\u name(axis)))键错误:'标签[2018-01-11]不在[索引]中'?您使用的是什么版本的熊猫?我用Pandas 0.22.0Ok实际上是0.21-现在升级我尝试使用多索引和tbh我更喜欢它,但当我尝试数据时。loc['2018-01-11',AEDCAD']我得到axis=self.obj.\u得到axis_name(axis)))键错误:'标签[2018-01-11]不在[索引]中'?你使用的是什么版本的Pandas?我用Pandas 0.22.0测试了这个,实际上是0.21-现在升级了