当前位置: 首页 > news >正文

Python---pandas

一、Pandas 显示设置 (Option)

这些命令决定了你在屏幕上看到数据的样子,通常放在脚本的最开头。

命令解读代码示例
显示所有列别让中间的列变成省略号...pd.set_option('display.max_columns', None)
显示所有行慎用!数据量大时会刷屏pd.set_option('display.max_rows', None)
内容不截断让长文本(如路径)完整显示pd.set_option('display.max_colwidth', None)
自动换行控制防止表格太宽被强行折叠pd.set_option('display.width', 1000)
查看设置说明忘记参数怎么写时查阅说明书pd.describe_option('display')

二、 核心工具:Pandas 常用操作命令

1. 数据概览(初步体检)

在处理单细胞数据(如muxu.obs)时,先看一眼表格的结构。

importpandasaspd df=muxu.obs# 假设 df 是你的样本信息表print(df.head(10))# 查看前 10 行print(df.columns)# 查看所有的列名print(df.info())# 查看每列的类型、是否有空值print(df.shape)# 查看表格的大小(行数, 列数)
2. 数据统计(摸清家底)

统计每个类别出现的频率。

# 统计每个细胞类型有多少个细胞print(df['celltype'].value_counts())# 统计每个样本(batch)的分布print(df['batch'].value_counts())# 查看数值列(如 nCount_RNA)的平均值、标准差、最大最小值print(df['nCount_RNA'].describe())
3. 数据筛选(精准定位)

从几万行数据中选出你想要的。

# 选出所有属于 CD 组的细胞cd_data=df[df['orig.ident']=='CD']# 选出 Cortex 且 RNA 计数大于 500 的细胞filtered_data=df[(df['celltype']=='Cortex')&(df['nCount_RNA']>500)]
4. 数据修改(手术修整)

给表格增加信息或改名。

# 修改列名:把 'orig.ident' 改为 'Group'df=df.rename(columns={'orig.ident':'Group'})# 新增一列:提取细胞 ID 的前缀df['sample_prefix']=df.index.str.split('_').str[0]

三、 针对你的项目:快速检查muxu数据

你可以直接把这段代码粘贴到你的 Python 环境中运行:

importpandasaspdimportscanpyassc# 1. 极简显示配置pd.set_option('display.max_columns',None)pd.set_option('display.width',1000)# 2. 读取数据adata=sc.read_h5ad("muxu.h5ad")df=adata.obs# 3. 核心三连看print("--- 1. 前 5 行预览 ---")print(df.head())print("\n--- 2. 所有列名清单 ---")print(df.columns.tolist())print("\n--- 3. 实验设计验证 ---")if'batch'indf.columns:print(df['batch'].value_counts())else:print("警告:未发现 batch 列,可能需要手动从 index 提取!")

💡 小贴士

  • **点号.与中括号[]**df['celltype']df.celltype大部分时候是一样的,但如果列名里有空格或特殊符号,必须用['列名']
  • 不改变原数据:绝大多数 pandas 操作(如rename,dropna)默认不修改原表格,而是返回一个新表格。所以记得写成df = df.rename(...)
http://www.jsqmd.com/news/221439/

相关文章:

  • 牛批了,AI办公神器,值得收藏
  • 零基础理解AUTOSAR模块间交互逻辑
  • display driver uninstaller清理AMD驱动的核心要点
  • DuRoBo Krono:搭载AI助手的智能手机尺寸电子阅读器
  • DuRoBo Krono:搭载AI助手的智能手机尺寸电子阅读器
  • pytorch深度学习笔记12
  • PDF编辑神器,免费国际版
  • T触发器时序行为深度剖析:建立与保持时间详解
  • DUT功能验证中的断言使用技巧:实战经验分享
  • 开发一款APP费用是多少?影响价格的几大核心因素
  • T触发器时序行为深度剖析:建立与保持时间详解
  • Elasticsearch资源隔离配置教程
  • 图解说明:PyTorch推荐系统中的Embedding层设计
  • 入驻爱发电
  • 一文搞懂RLHF (基于人类反馈的强化学习)
  • 利用udev规则屏蔽工业Linux系统中的未知USB设备(设备描述)
  • 三维动态避障路径规划:基于融合DWA的部落竞争与成员合作算法(CTCM)求解无人机三维动态避障路径规划研究,MATLAB代码
  • OpenAI推出ChatGPT Health医疗问答功能
  • AI 赋能学术:paperxie 毕业论文写作功能,让硕士 3 万字论文从选题到成稿更高效
  • 丘成桐数学科学领军人才培养计划毕业后安排和薪资
  • 完整回放|上海创智/TileAI/华为/先进编译实验室/AI9Stars深度拆解 AI 编译器技术实践
  • Anthropic寻求3500亿美元估值融资100亿美元
  • 新手教程:如何正确驱动无源蜂鸣器发声
  • 工业控制场景下QSPI协议通信稳定性深度剖析
  • 打卡信奥刷题(2666)用C++实现信奥题 P2863 [USACO06JAN] The Cow Prom S
  • DDOIProxy.dll文件丢失找不到问题 免费下载方法分享
  • CES 2026 | 重大更新:NVIDIA DGX Spark开启“云边端”模式
  • es客户端查询DSL在日志系统中的应用:全面讲解
  • LeetCode 470 用 Rand7() 实现 Rand10()
  • WaitMutex -FromMsBuild -architecture=x64”已退出,代码为 6