python - 在数据框列中插入与给定行中的数字相等的新行,并在 python 中用 1 填充
问题描述
在验证该行中的 nnumber 是否大于 1 后,我想在数据框中插入行。如果数字大于 1,我想删除该行并在其位置插入与前一行中写入的数字相同的行数,并用一个填充这些新行,同时复制其他列中的其他值并保留它们一样。我试过了:
df['new_col'] = np.where(df['Dead females']> 1 ,True, False )
df[:50]
数据框的开头如下所示:
值大于 1 的行与第 46 行类似:
我想要的是例如。在 46 处,第三列的条件为真,即大于 1,然后插入 2 行,每行插入 1。迭代并为整个数据框执行此操作。
解决方案
输入:
df = pd.DataFrame({'Age in days':[45, 46, 47],
'Dead females':[0,2,1],
'Censored':[0,1,0],
'Fly Line':['CS 0.5 LS F','CS 0.5 LS F','CS 0.5 LS F']})
df
Age in days Dead females Censored Fly Line
0 45 0 0 CS 0.5 LS F
1 46 2 1 CS 0.5 LS F
2 47 1 0 CS 0.5 LS F
现在转换Dead females
为列表如下:
df['Dead females'] = df['Dead females'].apply(lambda x : [1]*x)
然后explode
在该列上使用:
df = df.explode('Dead females', ignore_index = True)
np.nan
然后在该列中替换0
以获得最终的df。
df['Dead females'].replace(np.nan, 0, inplace=True)
输出:
Age in days Dead females Censored Fly Line
0 45 0 0 CS 0.5 LS F
1 46 1 1 CS 0.5 LS F
2 46 1 1 CS 0.5 LS F
3 47 1 0 CS 0.5 LS F
推荐阅读
- r - 向每个多面 ggplot2 添加自定义的多个 geom_vline
- python - pygame.error: 无法打开 img\title.png
- react-native - 尝试使用 React.memo() api 摆脱列表太大的警告,但不确定我是否做得对
- android - 如何在android中仅获取当前连接的蓝牙设备名称
- javascript - 如何使用 webgl2 渲染多个纹理/图像(jpeg、pngs)?
- .net - 依赖注入获取新实例
- ios - 找不到 CocoaLumberjack.h 文件?
- elasticsearch - ElasticSearch 匹配一个没有复合词的词
- python - Cronjob 不执行 python 脚本
- python - 关于Python中的文件io