将函数应用于熊猫数据框中的列

将函数应用于熊猫数据框中的列

问题描述:

因此,我有一个函数replaceMonth(string),它只是一系列if语句,它返回从pandas数据框中的列派生的字符串。然后我需要用派生的字符串替换原始字符串。将函数应用于熊猫数据框中的列

数据帧的定义是这样的:

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

有大约在数据帧80K行。我需要做的是用replaceMonth(string)函数的结果替换DSFS列中的内容。因此,如果,例如,第一行DSFS的值是'3-4个月',如果我通过replaceMonth()运行该字符串,它会给我'_3_4'作为返回值。然后我需要将数据帧中的值从'3 - 4个月'更改为'_3_4'。

我一直在试图使用应用在数据帧,但我得到任何的语法错误或不明白它在做什么正确的,就像这样:

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

这并不是合适的戒指给我但我不确定我在哪搞乱它。我对Python相当陌生,所以它可能是语法。 :)

任何帮助非常感谢!

当你apply你传递你想要应用到每个元素的函数。

尝试

dataframe['DSFS'].apply(replaceMonth) 

重新分配给数据框保存更改

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

该死,这是更直接,比我想象的要。 :) 工作完美!谢谢! – mswhitehead

+0

@piRSquared是否有办法在没有apply()返回的确切副本的情况下执行相同的操作?提前致谢。 – Hei