2017-04-02 110 views
1

因此,我有一個函數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相當陌生,所以它可能是語法。 :)

任何幫助非常感謝!

回答

2

當你apply你傳遞你想要應用到每個元素的函數。

嘗試

dataframe['DSFS'].apply(replaceMonth) 

重新分配給數據框保存更改

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

該死,這是更直接,比我想象的要。 :) 工作完美!謝謝! – mswhitehead

+0

@piRSquared是否有辦法在沒有apply()返回的確切副本的情況下執行相同的操作?提前致謝。 – Hei

相關問題