繁体   English   中英

获取dataframe中某列第一次出现的索引

[英]Obtaining the index of the first occurrence in a column in a dataframe

提示:本站为国内最大中英文翻译问答网站,提供中英文对照查看,鼠标放在中文字句上可显示英文原文

我有以下 dataframe:

import pandas as pd
d = {'Stages': ['Stage 1', 'Stage 2', 'Stage 2', 'Stage 2', 'Stage 3', 'Stage 1'], 'Start(s)': [0, 630, 780, 840, 900, 930], 'End(s)': [630, 780, 840, 900, 930, 960]}
df = pd.DataFrame(data=d)

    Stages         Start(s) End(s)
0   Stage 1          0      630
1   Stage 2         630     780
2   Stage 2         780     840
3   Stage 2         840     900
4   Stage 3         900     930
5   Stage 1         930     960

我想获取第 2 阶段首次出现在“阶段”列中的索引。在此示例中,它将是 1。

我尝试阅读有关类似问题的讨论,但无法实施。

如果始终存在至少一个Stage 2 ,请使用Series.idxmax比较第一个值:

print (df['Stages'].eq('Stage 2').idxmax())
1

如果可能不存在像Stage 8这样的nextiter技巧:

print (next(iter(df.index[df['Stages'].eq('Stage 8')]), 'not exist'))
not exist

print (next(iter(df.index[df['Stages'].eq('Stage 2')]), 'not exist'))
1

因为如果不存在匹配值idxmax返回第一个False值:

print (df['Stages'].eq('Stage 8').idxmax())
0

另一个想法是通过Series.whereSeries.first_valid_index测试不缺失值的第一个索引:

print (df['Stages'].where(df['Stages'].eq('Stage 8')).first_valid_index())
None

print (df['Stages'].where(df['Stages'].eq('Stage 2')).first_valid_index())
1
问题未解决?试试本站强大的搜索功能,搜索: 获取dataframe中某列第一次出现的索引
获取没有索引的 dataframe 列的最后一个值

[英]obtaining last value of dataframe column without index

假设我有一个 DataFrame 例如: 我想检索e列中的最后一个值。 我可以: 但这将返回一个索引为 9 的系列。 理想情况下,我只想获取可以直接使用的数字形式的值。 我也可以这样做: 但这将要求我在真正使用它之前访问/调用它的第 0 个元素。 有没有更直接/更简单的方法来做到这一点? ...

在多索引数据帧中查找每个索引的第一次出现

[英]Finding the first occurrence per index in Multiindex dataframe

我有一个名为 panel_long 的熊猫数据框,看起来像这样: 至于与生存分析的准备livelines我想补充,其中列明了第一期活动相当于每家公司真正的一列。 对于非多索引数据帧,我会使用 idxmax,但我不知道如何使它适用于多索引 df。 其中,我尝试了以下方法: 但这只是返回一个空的 ...

根据具有共享列的另一个数据帧在数据帧中查找第一次出现的值

[英]Find first occurrence of value in dataframe based on another dataframe with a shared column

我试图根据具有相同标识符的另一个数据框的值来查找超过阈值的值的第一次出现。 在下面的示例中,“Trace”列将是相同的标识符。 但是,第二个数据帧仅包含每个“跟踪”编号的一个值。 目标是找到 df1 的“信号”列超过 df2 中“信号”列的 2 倍的第一次出现。 另外,我想将其余信息保留在符合给定条 ...

根据列值中第一次出现的项目将数据框列拆分为两个

[英]Split dataframe column into two based on first occurrence of an item in column value

我有以下 4 列数据框: 我需要将时间列拆分为两个名为“日期”和“时间”的新列。 我需要通过第一次出现“:”来拆分时间列下的当前值。 我已经为 ':' 的第一个实例尝试了 split 函数,如下所示: 但这就是我最终得到的: 我如何正确地分成两列? 我究竟做错了什么? 帮助 :( ...

查找熊猫数据框中首次出现的特定部分字符串的索引位置

[英]Find index location of first occurrence of a specific partial string in pandas dataframe

我正在使用AFRINIC Whois数据。 我正在尝试查找第一次出现的子字符串的位置。 在示例中(熊猫数据框的左侧有一列“数据”是索引),我试图找到子字符串“ inetnum”。 因此,我正在寻找的结果是“ 2750383”。 我努力了: 但这给了我“ []”,因为它正在寻 ...

在数据帧的特定列中查找第一次出现的非整数

[英]Find first occurrence of non-integer in a specific column of a dataframe

我有一个数据帧,列中有一堆整数; 在列中的某个点,将出现一个字符串或字母。 我需要找到这个字符串或字母或非整数,然后删除它之后的所有数据。 我该怎么做? ...

Dataframe:按天分组并在第一次出现后在特定列中设置值

[英]Dataframe : Group by day and set values in a specific column after the first occurrence

我有这个 dataframe: 我想在每天第一次出现后将“过滤器”列的重复项设置为零。 在这个例子中,我把 ** 放在我想将它们设置为零的值中。 其他都还好。 我想使用 loc function。 提前致谢。 ...

获取数据框的前几行

[英]Obtaining the first few rows of a dataframe

有没有一种方法可以在不使用索引的情况下获取数据帧的前n行。 例如,我知道如果我有一个名为df的数据df.ix[5:]可以通过df.ix[5:]获得前5行。 但是,如果我的索引没有排序并且我不想对其进行排序怎么办? 这似乎不起作用。 因此,我想知道是否还有另一种选择前几行的方法。 如果已 ...

数据框将我的第一列作为索引

[英]dataframe treating my first column as an index

我正在使用read_sql_query方法将SQL表中的某些数据查询到数据帧中。 它有效,但是有一件事我不太了解。 所以我的SQL查询选择3列,第一列是日期(都是唯一的),第二列是一些文本,第三列是浮点数。 当我运行df.dtypes时,得到以下输出, 为什么忽略我的日 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2023 STACKOOM.COM