python - 在 DataFrame 中查找不被另一个 DataFrames 列中的值打断的连续列值
问题描述
我有两个 DataFrame,如下所示:
df1 = pd.DataFrame({
'id': [1, 3, 6, 9],
'value' : ['x']*4})
Out[1]:
id value
1 x
3 x
6 x
9 x
df2 = pd.DataFrame({
'id': [4, 10, 12],
'value': ['x']*3})
Out[2]:
id value
4 x
10 x
12 x
我想df1
用不中断的连续 ID 填充 DataFrame,但df2
.
输出应如下所示:
Out[3]:
id value
1 x
2 Nan
3 x
6 x
7 Nan
8 Nan
9 x
请注意,id 4 和 5 被跳过,因为df2
id 4 中断了此处的连续流。
解决方案
只需制作一个包含布尔值的循环,可能没有你想要的那么快,但它可以解决问题
a = [1,3,6,9]
b = [4,10,12]
add_id = True
result = []
for i in range(a[0], a[-1] + 1):
if i in a:
add_id = True
if i in b:
add_id = False
if add_id:
result.append(i)
output: [1, 2, 3, 6, 7, 8, 9]
推荐阅读
- browser - 隐藏式字幕轨道不适用于所有浏览器
- selenium - 自定义 /etc/hosts 文件上的 docker-selenium ?
- python - 这里继承合适吗?
- javascript - 将点击事件绑定到 Javascript 函数
- android - 尽管不在布局中,但仍在创建片段
- vba - 如何找出使用 VBA 写入 Excel 单元格时出现错误的原因?
- docker - CSV 数据集配置 - Jmeter Docker
- amazon-web-services - AWS Fargate ALB DNS 未解析
- android-studio - Android Studio 3.3 缺少喷气背包创建选项
- c - For循环在C中随机停止