String在panda数据帧中包含python函数吗?

时间:2017-10-02 19:22:28

标签: python pandas

我是python的新手,所以这里可能有一个简单的解决方案。我正在尝试在熊猫数据框架内清理有关租金/平方英尺的数据集。我的卧室数据栏包含有关卧室和平方英尺的信息。大多数条目的格式为“/ 1br - 950ft²”,但有些是“/ 1br”,有些是“/950ft²”。我正在尝试用卧室创建一个干净的列,但由于格式化,我不能只是在某个字符后拆分字符串。

我已经决定创建一个函数来测试字符串是否包含“br”,但是我收到了错误。

这是我的代码:

def cleaned_bedrooms(x):
    if df[df['bedrooms'].str.contains('br')]:
        df['bedrooms'] = df['bedrooms'].str.split('-').str[0]
    else:
        return None
df['bedrooms'].map(cleaned_bedrooms)

我似乎已经设置了一个布尔函数(我假设由if语句触发),因为我得到的错误是“ValueError:DataFrame的真值是不明确的。使用a.empty,a。 bool(),a.item(),a.any()或a.all()。“对于包含.map(cleaning_bedrooms)的行

1 个答案:

答案 0 :(得分:1)

如果这是您的数据框,

    bedrooms
0   / 1br - 950ft²
1   / 1br
2   /950ft²

您可以使用str.extract提取卧室

df['bedrooms'] = df['bedrooms'].str.extract('(\d+?br)', expand = False)

你得到了

    bedrooms
0   1br
1   1br
2   NaN