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

为什么pandas groupby会改变行数,如何基于Ft绘制Ct与Fs的散点图

问题解决方案

关于groupby改变行数的说明

pandas的groupby操作不会修改原始DataFrame的内容和总行数,你观察到的行数变化是分组后每个子分组只包含该Ft值对应的记录,所有子分组的行数总和与原始df的行数完全一致,不存在数据丢失问题。

代码修正

你现有代码缺少依赖库导入和绘图展示语句,修改后可直接运行:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# 读取数据,原代码中list([])属于冗余写法,直接传入列名列表即可
df = pd.read_csv('f.txt', sep=" ", names=["Ct", "Fs", "Ft"])
groups = df.groupby("Ft")
plt.subplots(figsize=(18,10))
for name, group in groups:
    plt.scatter(group.Ct, group.Fs, label=name, s=100)

plt.yticks(np.arange(0, 6, 0.5))
plt.xticks(np.arange(0, 24, 1))
plt.title('f', fontsize=20)
plt.xlabel('x', fontsize=20)
plt.ylabel('y', fontsize=20)
plt.legend(loc='upper center', ncol=3)
# 补充绘图展示语句
plt.show()

异常情况排查

如果运行后数据显示不符合预期,可以按以下步骤排查:

  • 验证数据完整性:打印原始数据行数和所有分组行数总和,二者一致则说明分组逻辑正常
print("原始数据总行数:", df.shape[0])
print("分组后所有子组行数总和:", sum(group.shape[0] for _, group in groups))
  • 排查读取异常:如果数据文件的分隔符是多空格、制表符等混合空白字符,将sep=" "修改为sep="\s+",可匹配任意长度的空白分隔符,避免列错位导致的行数异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 12:45:03