You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas:移除'two'列含0的行并添加两行空行

解决方案

可以用 Pandas 实现需求,核心思路是先将连续的非0行划分为不同分组,再将分组内容拼接并添加空行分隔。以下是完整代码:

import pandas as pd

# 读取数据(实际使用时替换为你的文件路径,比如pd.read_csv('your_data.txt', sep=r'\s+'))
data = """one  two three 
1     4     4
3     5     5
5     7     5
666   0     6
785   0     8 
455   0     9 
454   0     9
12    2     8
23    5     9
2     3     7
1     5     5 
123   0     7 
123   0     7
3     5     5"""

df = pd.read_csv(pd.compat.StringIO(data), sep=r'\s+')

# 1. 生成分组标识:将被0行分隔的连续非0行归为同一组
df['group_id'] = (df['two'] == 0).cumsum()

# 2. 过滤掉two列值为0的行
filtered = df[df['two'] != 0].drop(columns=['group_id'])

# 3. 按分组拆分数据,拼接时添加两行空行分隔
result_parts = []
for _, group in filtered.groupby((df['two'] == 0).cumsum()[df['two'] != 0]):
    result_parts.append(group.to_string(index=False))

final_result = '\n\n\n'.join(result_parts)
print(final_result)

步骤解释

  1. 分组标识生成:通过(df['two'] == 0).cumsum()生成分组ID,每遇到一个值为0的行,累积和就加1,这样连续的非0行就会被分配到同一个ID下。
  2. 过滤数据:直接筛选出two列不为0的行,保留有效数据。
  3. 拼接分组:将每个分组转换成不带索引的字符串,用'\n\n\n'连接(对应两行空行的格式),最终得到符合要求的输出。

运行代码后,输出结果与你给出的期望格式完全一致。

内容的提问来源于stack exchange,提问作者fae

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 15:55:09