如何移除DataFrame中duration列索引1对应的单个数据?
解决方法:移除DataFrame单个单元格的值
首先明确:Pandas里没有直接「删除」单个单元格的操作(会破坏DataFrame的行列结构),通常是把目标单元格设为缺失值(比如pd.NA或np.nan),既保留结构又达到清除该值的目的。
为什么你用df.drop()会删整列?
drop()是用来删除整行或整列的方法:如果写df.drop('duration', axis=1),axis=1指定操作列,就会删掉整个duration列;即便指定索引,drop()也是删除整行,完全不适合单个单元格的操作需求。
正确操作方式
方法1:直接修改原DataFrame
定位到索引为1、列名为duration的单元格,赋值为缺失值即可:
import pandas as pd # 初始化你的数据 data = { "calories": [420, 380, 390], "duration": [50, 40, 45], "sex": ["F", "M", "F"] } df = pd.DataFrame(data, index = [0,1,2]) # 修改目标单元格为缺失值 df.loc[1, 'duration'] = pd.NA
执行后DataFrame会变成:
calories duration sex 0 420 50 F 1 380 <NA> M 2 390 45 F
方法2:创建新DataFrame(不改动原数据)
如果不想影响原始数据,可以先复制一份再修改:
new_df = df.copy() new_df.loc[1, 'duration'] = pd.NA
针对你补充的实际DataFrame
你提供的包含索引3行的实际数据,操作逻辑完全一致,直接用df.loc[1, 'duration'] = pd.NA即可,不会干扰其他行或列的内容。
内容的提问来源于stack exchange,提问作者Man Wong
相关产品推荐
相关产品推荐

