将函数从R转换为Python

时间:2019-08-01 13:04:56

标签: python r

我正在尝试将r代码转换为python,以更好地学习python,并停留在一个简单的函数上,该函数检查所有6行以查看是否所有行都包含NA,然后打印NA或每一行不是全部NA都打印出max到数据框中的新列。

这是我在R中拥有的:

my.max <- function(x) ifelse( !all(is.na(x)), max(x, na.rm=T), NA 
data$datemax <- apply(data[,110:116],1,my.max)

如何在python中定义等效功能?

到目前为止,我在python中所做的是:

def my_max(x):
    if x.all().notna():
        max(x)
    else:
        'NA'

data['datemax'] = data.iloc[:,109:115].apply(my_max)

1 个答案:

答案 0 :(得分:0)

在python中,您甚至不需要检查。 Numpy会为您处理:

import numpy as np
import pandas as pd

df = pd.DataFrame(some_data) # Your dataframe

def my_max(row):
    return np.max(row) # Returns np.nan if all columns are np.nan, otherwise maxima

df['new_column'] = df.apply(my_max)