根据条件填充另一列(熊猫)的空值

chen

我正在尝试在数据集中填写空值。description列包含公寓的类型。对于Studio,我想填写为0个卧室,而对于Rooms,我想填写为1个卧室。

我试过了

df.loc[df['Description'] == 'Studio', 'Bedrooms'] = df['Bedrooms'].fillna(0)
df.loc[df['Description'] == 'Rooms', 'Bedrooms'] = df['Bedrooms'].fillna(1)

但这不起作用。有没有人有什么建议?

史密斯

没有示例DataFrame,我不得不询问您到底想要什么,希望我是对的。

您可以使用简单的lambda函数:

 # Import pandas, numpy
    import pandas as pd
    import numpy as np    

# Sample df
    d = {'Desc': ['Studio', 'Rooms', 'Studio', 'Studio', 'Studio', 'Rooms','Rooms','Rooms','Studio', 'Rooms']}
    df = pd.DataFrame(data=d)
    df['Rooms'] = np.nan

 # Lambda function       
    df['Rooms'] = df.apply(
            lambda row: 0 if row['Desc'] == 'Studio' else 1,
            axis=1
        )

或使用list +进行循环并将新列添加到df。

# Import pandas, numpy
import pandas as pd
import numpy as np

# Sample df
d = {'Desc': ['Studio', 'Rooms', 'Studio', 'Studio', 'Studio', 'Rooms','Rooms','Rooms','Studio', 'Rooms']}
df = pd.DataFrame(data=d)

# Create empty list for bedroom numbers.
bedrooms = []

# Fill the list with 0/1 base on your Studio/Rooms option.
for i in range(0,len(df.index)):
    if df['Desc'].loc[i].lower() == 'studio':
        bedrooms.append(0)
    else:
        bedrooms.append(1)

# Add new column to your DataFrame
df['Rooms'] = np.array(bedrooms)

两种方式都会在名为“ Rooms”的新列中显示结果(0/1)。

如果我没有正确猜到您的问题,请告诉我。

祝好运!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何根据熊猫中另一列中的空值填充列

根据另一列中的条件填充熊猫

Python熊猫根据另一列的条件填充缺失值(NaN)

根据另一列值向前填充熊猫

用另一列的条件填充一列并移动熊猫中的值

根据另一列的汇总在一列中填充空值

根据来自另一列的信息用熊猫填充一个空列

熊猫根据选择为条件的另一列中的值创建一列

根据熊猫数据框中另一列的最后一个值填充列

根据另一列填充熊猫列

如何根据另一列中的间隔填充熊猫中其他列的缺失值?

VBA Excel - 根据另一列的值和条件填充列

根据 R 中另一列的条件,用相同的值填充整个新列

如何根据熊猫另一列中的条件生成具有值的新列

熊猫:根据另一列中的条件更改该列的先前单元格值

根据另一列的条件创建熊猫列

如何根据另一列的条件创建熊猫列?

如何根据其他某些列的条件用另一列的值填充一列?

根据特定月份的值过滤熊猫数据框,并以另一列为条件

使用Python熊猫根据条件将行值复制到另一列

熊猫根据另一列中的值替换值

熊猫,根据另一列的值减去值

如何根据另一列中的值填充列?

根据另一列的值填充CSV列

根据条件在熊猫数据框中将一列的值提供给另一列

根据条件(使用熊猫)将值从一列复制到另一列

熊猫,根据条件在另一列中搜索结果

熊猫根据另一列的条件重置 cumsum()

如何根据条件在熊猫中创建另一列?