python-3.x - Pandas Dataframe:如果相应的“年”是闰年,则将“天”的值减少 1
问题描述
如果'Days' 大于例如10 并且相应的'Year' 是闰年,则仅在该特定行中将'Days' 减1。我尝试了一些操作,但无法做到。我是熊猫新手。感谢任何帮助。
样本数据:
data = [['1', '2005'], ['2', '2006'], ['3', '2008'],['50','2009'],['69','2008']]
df=pd.DataFrame(data,columns=['Days','Year'])
我希望第 5 行的“天数”变为 69,其他一切都保持不变。
解决方案
In [98]: import calendar
In [99]: data = [['1', '2005'], ['2', '2006'], ['3', '2008'],['50','2009'],['70','2008']] ;df=pd.DataFrame(data,column
...: s=['Days','Year'])
In [100]: df = df.astype(int)
In [102]: df["New_Days"] = df.apply(lambda x: x["Days"]-1 if (x["Days"] > 10 and calendar.isleap(x["Year"])) else x["D
...: ays"], axis=1)
In [103]: df
Out[103]:
Days Year New_Days
0 1 2005 1
1 2 2006 2
2 3 2008 3
3 50 2009 50
4 70 2008 69
推荐阅读
- plotly-dash - Vaex GroupBy 数据框和 Plotly Express 图表
- flutter - 如何在 NestedScrollView 的主体中添加 ScrollController
- html - 展开浏览器搜索栏时无法点击移动导航
- c++ - 我不知道为什么我无法回答。(c/c++)
- javascript - 每次等待后检查条件的惯用方法
- java - onActivityResult 的替代方案
- reactjs - 使用自定义输入时在 onFocus 事件中更改状态时失去焦点
- c++ - 访问另一个类中的类变量会显示 C++ 中的不同行为
- python - 你能得到对某个用户的 Twitter 时间线的回复吗?
- nestjs - 获取TypeError:无法使用nestjs读取typeorm中未定义的属性'reduce'