我正在尝试将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)
答案 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)