+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

一种遍历行和列(在熊猫数据框中),根据条件选择行和列以将另一个数据框放入熊猫的方法

发布于2021-01-23 19:52     阅读(263)     评论(0)     点赞(22)     收藏(4)


0

1

2

3

4

5

6

7

8

我有一个超过1500行的数据框,该表的样本是这样的

Site 2019 2020 2021 ....
ABC   0    1     2
DEF   1    1     2
GHI   2    0     1
JKL   0    0     0 
MNO   2    1     1   

我想创建一个新的数据框,它仅在具有以下条件的情况下选择站点和年份:

  • 2019年的价值
  • 如果2019年的价值大于或等于未来几年的价值
  • 如果下一年有更大的价值,那么前一年的价值
  • 如果下一年的价值小于上一年

所以这个例子的输出是

Site 2019 2020 2021 ....
DEF   1    1     1
GHI   2    
MNO   2    1     1   

DEF在2021年获得1,因为2020年达到1

我试图使用以下内容在2019列中找到具有值的行,但

for i.j in df.iterrows(): 
  if when j=2 
    if i >0   
     return value

但是我收到语法错误


解决方案


在不循环行的情况下,您可以执行以下操作:

df1 = df[(df[2019] > 0) & (df.loc[:, 2020:].min(axis=1) <= df.loc[:, 2019])]
cols = df1.columns.tolist()
for i in range(2, len(cols)):
    df1[cols[i]] = df1.loc[:, cols[i - 1: i + 1]].min(axis=1)
df1

输出:

     2019  2020  2021
DEF     1     1     1
GHI     2     0     0
MNO     2     1     1

0

1

2

3

4

5

6

7

8



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接: https://www.pythonheidong.com/blog/article/787089/bba72db8f3ef405dce9f/

来源: python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

22 0
收藏该文
已收藏

评论内容:(最多支持255个字符)