将函数应用于pandas数据帧中的列

时间:2017-04-02 00:52:38

标签: python pandas

所以我有一个函数replaceMonth(string),它只是一系列if语句,它返回从pandas数据帧中的列派生的字符串。然后我需要用派生的字符串替换原始字符串。

数据框的定义如下:

key={cityName + i}

数据框中有大约80K行。我需要做的是使用replaceMonth(string)函数的结果替换DSFS列中的内容。

因此,例如,如果DSFS的第一行中的值为3-4个月,如果我通过replaceMonth()运行该字符串,则会给我' _3_4&#39 ;作为返回值。然后我需要更改数据框中的值,从“3-4个月”开始。到' _3_4'。

我一直试图在数据框架上使用apply,但我要么弄错了语法,要么不理解它正确地做了什么,如下所示:

Index    ID        Year  DSFS           DrugCount
0        111111    Y1    3- 4 months    1

这对我来说并不合适,但我不知道我在哪里弄乱它。我对Python很新,所以它可能是语法。 :)

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:4)

当您apply传递要应用于每个元素的函数时。

尝试

dataframe['DSFS'].apply(replaceMonth)

重新分配到数据框以保留更改

dataframe['DSFS'] = dataframe['DSFS'].apply(replaceMonth)