首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据Python中的条件更新和替换列中的值

根据Python中的条件更新和替换列中的值
EN

Stack Overflow用户
提问于 2022-07-27 22:24:57
回答 1查看 24关注 0票数 0

我希望根据数据中的日期更新和替换值,同时删除其他特定列中的数据。

数据

代码语言:javascript
运行
复制
id  date        location    status  value1  value2
CC  1/1/2022    ny          new     12      1
CC  4/1/2022    ny          new     1       1
CC  7/1/2022    ny          new     1       1
CC  10/1/2022   ny          new     1       2
CC  1/1/2023    ny          ok      1       2
CC  4/1/2023    ny          ok      1       2
CC  7/1/2023    ny          ok      1       3
CC  10/1/2023   ny          ok      1       3
BB  1/1/2022    ca          new     1       3
BB  4/1/2022    ca          new     1       3
BB  7/1/2022    ca          new     1       3
BB  10/1/2022   ca          new     12      3
BB  1/1/2023    ca          new     2       3
BB  4/1/2023    ca          new     2       3
BB  7/1/2023    ca          new     2       3
BB  10/1/2023   ca          new     2       3

期望的

代码语言:javascript
运行
复制
id  date        location    status  value1  value2
CC  1/1/2022    ny          open        
CC  4/1/2022    ny          open        
CC  7/1/2022    ny          open        
CC  10/1/2022   ny          new     1       2
CC  1/1/2023    ny          ok      1       2
CC  4/1/2023    ny          ok      1       2
CC  7/1/2023    ny          ok      1       3
CC  10/1/2023   ny          ok      1       3
BB  1/1/2022    ca          new     1       3
BB  4/1/2022    ca          new     1       3
BB  7/1/2022    ca          new     1       3
BB  10/1/2022   ca          new     12      3
BB  1/1/2023    ca          new     2       3
BB  4/1/2023    ca          new     2       3
BB  7/1/2023    ca          new     2       3
BB  10/1/2023   ca          new     2       3

代码语言:javascript
运行
复制
df.loc[(df.id == 'cc') & (df.date <= '07/01/2022'), 'status']= 'open'

此标记将所有日期标记为已打开,并且不移除其他列中的值。如有任何建议,将不胜感激。谢谢你的建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-27 22:44:14

不幸的是,关闭一个细胞似乎不适用于潘达斯。类似地,Pandas在设置dataframe时要求每个列的每个单元格都有一个值。

因此,nan (不是数字)似乎是适合您的情况的确切占位符。然后,考虑导入numpy as np并添加行以将相应的条目设置为np.nan

代码语言:javascript
运行
复制
df.loc[(df.id == 'cc') & (df.date <= '07/01/2022'), 'value1']= np.nan

幸运的是,

代码语言:javascript
运行
复制
df.fillna("")

打印Pandas框架时,没有显示那些烦人的NAN条目,而是像您所希望的那样使单元格“空”。

此外,NumPy还允许使用聚合函数忽略nan值,例如可以找到np.nanmean()的nan值,以避免中断对此类表的计算。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73145220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档