当前位置: 首页 > 知识库问答 >
问题:

如何填充pandas DataFrame中仅选定列的空值?[副本]

晏卓君
2023-03-14

我的dataframe由多个具有NaN值的列组成。我只想将特定列(列名:MarkDown1)的NaN值替换为0。

data1.loc[:,['MarkDown1']] = data1.loc[:,['MarkDown1']].fillna(0)
    C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\indexing.py:965: SettingWithCopyWarning: 
    A value is trying to be set on a copy of a slice from a DataFrame.
    Try using .loc[row_indexer,col_indexer] = value instead

    See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    self.obj[item] = s

共有1个答案

庾波光
2023-03-14

问题的根源在于,您创建的data1可能是另一个DataFrame的视图。

结果是:

  • Data1是一个单独的数据目录,
  • 但它与另一个(源)DataFrame共享其数据缓冲区。
   Xxx  MarkDown1
0    1       10.0
1    2       20.0
2    3        NaN
3    4       30.0
4    5       40.0
data1 = df[df.Xxx < 5]

为了避免这种情况,将data1创建为一个单独的DataFrame,并使用它自己的数据缓冲区:

data1 = df[df.Xxx < 5].copy()

这一次,当您运行指令时,不会发生错误。

 类似资料:
  • 我有一个熊猫数据框,它有超过4列。col1中的某些值缺失,我希望根据以下方法设置这些缺失的值: 尝试根据具有相同col2, col3, col4值的记录的col1值的平均值来设置它 如果没有这样的记录,则根据具有相同col2, col3值的记录的col1值的平均值来设置它 如果仍然没有这样的记录,则根据具有相同col2值的记录的col1值的平均值来设置它 如果以上都找不到,将其设置为col1中所有

  • 我的熊猫数据框中有2列。 我想去掉可乐和可乐,用可乐代替。 基本上,我需要用cola和colb中的值填充colc。如果可乐中有一个楠,那么它会从可乐中拉出,如果可乐中有一个楠,它会从可乐中拉出。如果可乐和可乐中没有楠,它们应该总是相等的。 我将如何在熊猫身上实现这一点?

  • 我有以下示例数据框架: 我只想替换前两列中的空值——列“a”和“b”: 这是创建示例数据帧的代码: 我知道如何使用替换所有空值: 当我尝试这样做时,我失去了第三列:

  • 问题内容: 我有一个大查询表,看起来像这样:![Table [(https://ibb.co/1ZXMH71)如您所见,大多数值都是空的。我想向前填充这些空值,这意味着使用按时间排序的最后一个已知值。 显然,有一个名为FILL的函数但是我不知道如何使用它。 这是我尝试过发布到Web UI的查询: 我得到的错误是:语法错误:[3:6]处出现意外的标识符“ sns_6”,我想要的是获取一个新表,其中s

  • 我有一个<代码> 窄的标题行 我想占用div剩余部分的图像。 如何使用纯CSS(无Javascript)实现这一点?我一直在尝试很多事情,运气不好。 这是我能得到的最接近的;图像偷偷溜出了的绿色边框 下面是我尝试使用,但失败了。

  • 问题内容: 我正在使用Richfaces的选择列表,我想用我的支持bean中的SelectItems列表填充右侧面板。 从后盾到左侧填充不是问题,但是右侧存在问题。 这是我目前所拥有的 编辑: 所以我有角色“ a”,“ b”,“ c”和“ d”。 用户具有角色“ a”和“ d”,因此“ a”和“ d”应在右侧面板上,而“ b”和“ c”应在左侧面板上。 编辑: 进一步解释。 我为用户提供了三个列表