python - 如何最好地创建一个新列,其中每个值都由当前行和其他行确定?
问题描述
这只是一个示例数据框:
df = pd.DataFrame([[0, 234, 1000], [1, 324, 1015], [2, 343, 1045]], columns = ["num", "num1", "num2"])
num num1 num2
0 0 234 1000
1 1 324 1015
2 2 343 1045
我想创建第四列,其中包含 num1 列的当前值,以及 num1 的两个先前值,但前提是这些值大于 300。
我在某种程度上尝试了这个答案:Apply function to pandas dataframe row using values in other rows
但是,我不确定如何以前两行是否大于某个数字为条件。
解决方案
我可以为每行的下 2 个值而不是前 2 个值执行此操作,可能其他人可以弄清楚。
df['val'] = df.apply(lambda x: [val for i,val in enumerate(df['num1'][x.name:x.name+3].to_list()) if val >=300 or i==0], axis=1)
print(df)
输出
num num1 num2 val
0 0 123 1000 [123, 324]
1 0 234 1000 [234, 324, 343]
2 1 324 1015 [324, 343]
3 2 343 1045 [343]
4 0 123 1000 [123]
推荐阅读
- python - python: update (source newer than destination or destination missing) copy files
- reactjs - react js中的嵌套路由不能正常工作?
- javascript - 将对象传递给事件函数
- vb.net - 将内部和外部边界设置在一条线上
- arrays - 您可以使用嵌套了 SUBSTITUTE/LEN/RIGHT 函数的 ArrayFormula 复制列中的公式吗?
- javascript - 如何在 js 脚本中的窗口中删除事件侦听器或不在 chrome devtools 中的 puppeteer
- reactjs - react-router-dom > NavLink > 多个activeClassName?
- azure-virtual-machine - 如何在 Azure 虚拟机中为在 Hyper-V 下运行的群集创建共享磁盘?
- encryption - 如何将openssl加密和解密转换为php
- javascript - 单击删除按钮时删除所选索引处的项目-React