用已知值填充NaN

2024-04-25 12:10:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含3列的数据集,示例如下:

       User         Items         Item_ID

0      U265          PC             1
1      U299         Table           2
2      U299          PC            NaN  

我想根据列项目用已知值填充nans。 PC的ID为1,所以我希望python在Item\u ID中查找NaN,检查Items列是否不是NaN,如果是好的,检查前一行中所需项的Item\u ID,然后用值填充NaN。你知道吗

最后我会得到:

       User         Items         Item_ID

0      U265          PC             1
1      U299         Table           2
2      U299          PC             1  

有什么想法吗?我应该使用map函数吗?groupby是否还要获取for和Item中最常用的值,这样我就不会填充噪波/错误的值?它扭曲了:)

谢谢你的帮助!你知道吗


Tags: 数据项目id示例tableitemsnanitem
1条回答
网友
1楼 · 发布于 2024-04-25 12:10:12

您可以按逻辑数组访问一组行。你知道吗

df.loc[df.Items == "PC"]

您甚至可以组合几个条件,请参见Python Pandas: Boolean indexing on multiple columns

df.loc[(df.Items == "PC") and numpy.isnan(df.Item_ID)]

然后您可以设置该值并像这样将其连接回旧的数据帧

df.update(
    df.loc[(df.Items == "PC") 
           and numpy.isnan(df.Item_ID)]
    .assign(Item_ID=1)
)

或者在最后一步,您可以使用另一种更适合数据结构的方法。你知道吗

相关问题 更多 >

    热门问题