发布于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
我想创建一个新的数据框,它仅在具有以下条件的情况下选择站点和年份:
所以这个例子的输出是
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黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系z452as@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!