Python 在数据帧中查找与时间戳对应的行

Python 在数据帧中查找与时间戳对应的行,python,pandas,dataframe,Python,Pandas,Dataframe,我试图找到与数据帧中的时间戳对应的行号。我认为我目前的做法会产生模棱两可的结果,并且没有选择正确的行: idx = pd.DatetimeIndex(freq='d', start='1979-01-01', end='2015-12-30') df = pd.DataFrame(data=randint(-10, high=20, size=(len(idx),2)), index=idx) row = abs(df.sum(axis=1)- df.ix['2014-05-30'].sum(a

我试图找到与数据帧中的时间戳对应的行号。我认为我目前的做法会产生模棱两可的结果,并且没有选择正确的行:

idx = pd.DatetimeIndex(freq='d', start='1979-01-01', end='2015-12-30')
df = pd.DataFrame(data=randint(-10, high=20, size=(len(idx),2)), index=idx)
row = abs(df.sum(axis=1)- df.ix['2014-05-30'].sum(axis=1)).values.argmin()
当我检查结果时,我得到一个77的行号,它给出:

df.ix[row]

0    14
1     9
Name: 1979-03-19 00:00:00, dtype: int32
这不是正确的日期,应该是“2014-05-30”

有没有一种更通用的方法来使用熊猫时间戳

In [12]: np.random.seed(1234)

In [13]: df = pd.DataFrame(data=randint(-10, high=20, size=(len(idx),2)), index=idx)
如果你真的想知道行号

In [14]: df.index.get_loc('2014-05-30')
Out[14]: array([12933])

In [15]: df.iloc[12933]
Out[15]: 
0    18
1     8
Name: 2014-05-30 00:00:00, dtype: int64
这是部分字符串索引,请参见此处:;在这种情况下,它与您指定的
df.loc[时间戳('2014-05-30')]
相同,因为它是完全匹配的(例如,您有每日频率)

如果你真的想知道行号

In [14]: df.index.get_loc('2014-05-30')
Out[14]: array([12933])

In [15]: df.iloc[12933]
Out[15]: 
0    18
1     8
Name: 2014-05-30 00:00:00, dtype: int64
这是部分字符串索引,请参见此处:;在这种情况下,它与您指定的
df.loc[时间戳('2014-05-30')]
相同,因为它是完全匹配的(例如,您有每日频率)

如果你真的想知道行号

In [14]: df.index.get_loc('2014-05-30')
Out[14]: array([12933])

In [15]: df.iloc[12933]
Out[15]: 
0    18
1     8
Name: 2014-05-30 00:00:00, dtype: int64
这是部分字符串索引,请参见此处:;在这种情况下,它与您指定的
df.loc[时间戳('2014-05-30')]
相同,因为它是完全匹配的(例如,您有每日频率)

如果你真的想知道行号

In [14]: df.index.get_loc('2014-05-30')
Out[14]: array([12933])

In [15]: df.iloc[12933]
Out[15]: 
0    18
1     8
Name: 2014-05-30 00:00:00, dtype: int64
这是部分字符串索引,请参见此处:;在这种情况下,它与您指定的
df.loc[时间戳('2014-05-30')]
相同,因为它是完全匹配的(例如,您有每日频率)



你能给出一些简短的数据样本(最好是一些复制它的代码)吗?为什么你认为它应该是
'2014-05-30'
?代码对随机整数求和并搜索最小值。我预计“行”中的数字应与时间“2014-05-30”相对应,因为从求和的数据帧中减去此时的求和值后,此时行的绝对值将等于零。我认为它没有给出正确的答案,因为它模棱两可,所以我正在寻找一个更通用的解决方案。你能给出一些简短的数据样本(最好是一些复制它的代码吗?)为什么你认为它应该是
'2014-05-30'
?代码对随机整数求和并搜索最小值。我预计“行”中的数字应与时间“2014-05-30”相对应,因为从求和的数据帧中减去此时的求和值后,此时行的绝对值将等于零。我认为它没有给出正确的答案,因为它模棱两可,所以我正在寻找一个更通用的解决方案。你能给出一些简短的数据样本(最好是一些复制它的代码吗?)为什么你认为它应该是
'2014-05-30'
?代码对随机整数求和并搜索最小值。我预计“行”中的数字应与时间“2014-05-30”相对应,因为从求和的数据帧中减去此时的求和值后,此时行的绝对值将等于零。我认为它没有给出正确的答案,因为它模棱两可,所以我正在寻找一个更通用的解决方案。你能给出一些简短的数据样本(最好是一些复制它的代码吗?)为什么你认为它应该是
'2014-05-30'
?代码对随机整数求和并搜索最小值。我预计“行”中的数字应与时间“2014-05-30”相对应,因为从求和的数据帧中减去此时的求和值后,此时行的绝对值将等于零。我认为它没有给出正确的答案,因为它是模糊的,所以我正在寻找一个更通用的解决方案。这正是我一直在寻找的。为什么DateIndex不同?这不起作用:
group[group['low'].idxmin()]
但使用
.loc
它起作用。wtf@Tjorriemorrie因为
group['low'].idxmin()
的结果是一个标量,因此需要对列进行索引。(不是行索引)。这正是我一直在寻找的。为什么DateIndex不同?这不起作用:
group[group['low'].idxmin()]
但使用
.loc
它起作用。wtf@Tjorriemorrie因为
group['low'].idxmin()
的结果是一个标量,因此需要对列进行索引。(不是行索引)。这正是我一直在寻找的。为什么DateIndex不同?这不起作用:
group[group['low'].idxmin()]
但使用
.loc
它起作用。wtf@Tjorriemorrie因为
group['low'].idxmin()
的结果是一个标量,因此需要对列进行索引。(不是行索引)。这正是我一直在寻找的。为什么DateIndex不同?这不起作用:
group[group['low'].idxmin()]
但使用
.loc
它起作用。wtf@Tjorriemorrie因为
group['low'].idxmin()
的结果是一个标量,因此需要对列进行索引。(不是行索引)。