繁体   English   中英

在 df 中的最后一个值之前拉取值 n

Pull value n before last value in df

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个 df ,其中包含许多列的年度数据。 我有代码来提取每列中的最后一个值,不包括 0。 我想在我拉的行之前拉第 n 行,问题是所有这些值的索引都不相同。 我想在每个 col 上使用 df_periods 中的 n 来拉取第 n 个值。 我想尝试索引我从 endval 获得的值,但因为它们不是来自同一行,所以它似乎不起作用。 对此有何想法?

df=
col1 col2 col3 col4 col5
8    9    6    7    1
8    9    6    7    1
8    9    6    7    1
8    9    6    7    1
8    9    6    7    NaN  
8    NaN  6    7    NaN  
8    NaN  6    7    NaN  
8    NaN  6    7    NaN  

df_periods=
col1 col2 col3 col4 col5
 4    3    5    4    4

endval = df.stack().groupby(level=1).last()
1 个回复

尝试:

# remove the `nan` values
s = df.stack().reset_index(name='value')

# enumerate date from bottom up
count_from_bottom = s[::-1].groupby('level_1').cumcount()[::-1]

# compare the enumeration with the respective threshold and extract data
endval = s.loc[count_from_bottom < s['level_1'].map(df_periods.iloc[0])]

输出:

    level_0 level_1  value
4         0    col5    1.0
9         1    col5    1.0
11        2    col2    9.0
14        2    col5    1.0
16        3    col2    9.0
17        3    col3    6.0
19        3    col5    1.0
20        4    col1    8.0
21        4    col2    9.0
22        4    col3    6.0
23        4    col4    7.0
24        5    col1    8.0
25        5    col3    6.0
26        5    col4    7.0
27        6    col1    8.0
28        6    col3    6.0
29        6    col4    7.0
30        7    col1    8.0
31        7    col3    6.0
32        7    col4    7.0
1 返回熊猫 df 中的最后一个非零值

我有一个数据框 逻辑是如果 col1 不为零,则返回 col1。 如果 col 1 为零,则返回 col2(非零)。 如果 col 2 为零,则返回 col3。 我们不需要为 col4 做任何事情 我的代码如下所示,但它只返回 col1 我试过 .any() 和 .all(),它也不起作用。 ...

2 通过列中的最后一个非 NA 值对 df 进行子集

我的数据框如下所示: 我想对这个数据框进行子集化,以便仅包含最后一个非北美年份等于或小于 2020 年的那些列。在上面的示例中,这意味着删除aquil_7列,因为它的最后一个非北美年份是 2021 年。 我怎么能这样做? ...

2021-02-22 17:14:09 2 30   r
4 选择第n个至最后一个值

我有这样的一张桌子: 所有ID和组都是顺序的。 我想是选择id和device基于组和设备。 将其视为分页类型选择。 获取最后一个group是一个简单的内部选择,但是如何选择倒数第二个组或倒数第三个组-等等。 我试过这样的行号功能: ..但更改rn是给我先前的ID,而不 ...

6 从一个 df 中获取值并存储到另一个 df 中,并同时将值分配给每一行的新列名

有没有办法从一个数据帧中获取数据,例如使用 loc,基于条件,如果为真,则在该行中检索多个值(即来自不同列)并将它们附加到新行中的另一个数据帧(例如location: index+1) 但将每个值存储在与原始数据框列名不同的列中。 并且不使用循环。 我最初是通过循环遍历数据帧并将所需数据附加到新数 ...

8 获得零之前的最后一个值

我在SQL Server中有此表: 我想得到零之前的最后一个值。 例如,在第一行中获取12,在第二行中获取8,因为第二行不包含零,而第三行获取10,... 如何在SQL Server中做到这一点。 ...

9 Pandas - 如何使用另一个 DF 的值从没有任何“键”的大 DF 中提取值?

我有一个大矩阵作为熊猫 DF,没有任何“键”,但顶部有纯数字。 一个较小的版本只是为了演示这里的问题,就像这个输入: 我想要完成的是使用另一个给定的 DF 作为具有这样结构的参考 ...从大 DF 中提取值,而 'A' 的值对应于大 DF 的ROW编号和 'B' 值对应于大 DF的COLU ...

10 在numpy / pandas中查找特定值之前的最后一个值

我有一个熊猫系列,我想找到一些值在某个其他特定值之前出现的最后一次的索引/位置(或布尔掩码)。 例如给出: 我想找到0的所有位置,这是9之前的最后一个位置。所以,如果我的阵列是 只有位置3和9中的零才对我感兴趣。 请注意,在这里我不担心在第12位的最后0会发生什么。我宁愿 ...

暂无
暂无

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

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