Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在数据帧索引中查找标签位置_Python_Pandas - Fatal编程技术网

Python 在数据帧索引中查找标签位置

Python 在数据帧索引中查找标签位置,python,pandas,Python,Pandas,我有一个数据框: import pandas as pnd d = pnd.Timestamp('2013-01-01 16:00') dates = pnd.bdate_range(start=d, end = d+pnd.DateOffset(days=10), normalize = False) df = pnd.DataFrame(index=dates, columns=['a']) df['a'] = 6 print(df) a 201

我有一个数据框:

import pandas as pnd
d = pnd.Timestamp('2013-01-01 16:00')
dates = pnd.bdate_range(start=d, end = d+pnd.DateOffset(days=10), normalize = False)

df = pnd.DataFrame(index=dates, columns=['a'])
df['a'] = 6

print(df)
                     a
2013-01-01 16:00:00  6
2013-01-02 16:00:00  6
2013-01-03 16:00:00  6
2013-01-04 16:00:00  6
2013-01-07 16:00:00  6
2013-01-08 16:00:00  6
2013-01-09 16:00:00  6
2013-01-10 16:00:00  6
2013-01-11 16:00:00  6
我感兴趣的是找到其中一个标签的标签位置,比如

ds = pnd.Timestamp('2013-01-02 16:00')

看看索引值,我知道这是这个标签1的整数位置。如何让pandas知道这个标签的整数值是多少?

您正在寻找索引方法
get\u loc

In [11]: df.index.get_loc(ds)
Out[11]: 1

获取给定日期键的数据帧整数索引:

>>> import pandas as pd

>>> df = pd.DataFrame(
    index=pd.date_range(pd.datetime(2008,1,1), pd.datetime(2008,1,5)),
    columns=("foo", "bar"))

>>> df["foo"] = [10,20,40,15,10]

>>> df["bar"] = [100,200,40,-50,-38]

>>> df
            foo  bar
2008-01-01   10  100
2008-01-02   20  200
2008-01-03   40   40
2008-01-04   15  -50
2008-01-05   10  -38

>>> df.index.get_loc(df["bar"].argmax())
1

>>> df.index.get_loc(df["foo"].argmax())
2
在列栏中,最大值的索引为1

在foo列中,最大值的索引为2


get\u loc可用于行和列,具体如下:

import pandas as pnd
d = pnd.Timestamp('2013-01-01 16:00')
dates = pnd.bdate_range(start=d, end = d+pnd.DateOffset(days=10), normalize = False)

df = pnd.DataFrame(index=dates)
df['a'] = 5
df['b'] = 6
print(df.head())    
                     a  b
2013-01-01 16:00:00  5  6
2013-01-02 16:00:00  5  6
2013-01-03 16:00:00  5  6
2013-01-04 16:00:00  5  6
2013-01-07 16:00:00  5  6

#for rows
print(df.index.get_loc('2013-01-01 16:00:00'))  
 0
#for columns
print(df.columns.get_loc('b'))
 1

顺便说一句,pandas的传统别名是
pd
:)之所以出现在这里,是因为我遇到了相反的问题:给定dataframe
df
中的整数位置,在该位置找到标签。在摆弄之后,结果是这样的:您可以使用
df.index[n]
@在索引位置
n
获得标签。Jeff说到刷新:这将如何扩展到多索引?AttributeError:“MultiIndex”对象没有属性“getloc”,请查看标题的编辑。Google对stackoverflow问题的标题进行了大量排序,它对问题标题进行情感分析和词汇解析,以优化给定查询的最佳答案。这是我做的编辑。OP把标签放在问题的末尾,我把它们移到了开头。我的命名风格通常是“在标签和标签中,我如何X所有的Y?”当你在谷歌搜索“蟒蛇熊猫,我怎么把所有的Y都变成X?蓝色链接文本是100%确认这是否符合您的需要所需的全部内容。您可以认为标记集和标题文本重复单词,但问题是标记没有显示得那么突出。理想情况下,我认为最好的方法是在标题中添加标签,如果标签有用的话,只会在它造成损害时被删除(就像你刚才做的那样),而在这种情况下,它不会造成损害。尽量不要因为标签在标签集中被复制,就从标题中删除标签,简洁完整的标题措辞对搜索引擎过程很重要。