我對這些東西幾乎一無所知。但是,我的老師說她幫不上忙。我試過查看這個錯誤,但一切都在我的腦海中。我究竟做錯了什么?
import pandas as pd
data = {"student": ["Anayo","Brandon","Claudia","Dave","Evelyn","Finn","Gloria","Hank","Isla", "Julia" ],
"test_one": [84, 90, 50, 29, 49, 44, 30, 98, 31, 66],
"test_two": [68, 78, 28, 80, 45, 56, 53, 93, 31, 66],
"test_three": [42, 35, 30, 40, 28, 85, 80, 99, 38, 48]
}
test_data = pd.DataFrame(data)
def max_two(one, two):
return test_data[[one, two]].max(axis=1)
test_data["max_1_and_2"] = max_two(test_data["test_one"], test_data["test_two"])
uj5u.com熱心網友回復:
問題是您的函式需要您提供列名,但您發送的是實際的列。采用:
將熊貓匯入為 pd
data = {"student": ["Anayo","Brandon","Claudia","Dave","Evelyn","Finn","Gloria","Hank","Isla", "Julia" ],
"test_one": [84, 90, 50, 29, 49, 44, 30, 98, 31, 66],
"test_two": [68, 78, 28, 80, 45, 56, 53, 93, 31, 66],
"test_three": [42, 35, 30, 40, 28, 85, 80, 99, 38, 48]
}
test_data = pd.DataFrame(data)
def max_two(one, two):
return test_data[[one, two]].max(axis=1)
test_data["max_1_and_2"] = max_two("test_one", "test_two")
uj5u.com熱心網友回復:
它可能更容易實作,無需單獨的功能:
import pandas as pd
data = {"student": ["Anayo","Brandon","Claudia","Dave","Evelyn","Finn","Gloria","Hank","Isla", "Julia" ],
"test_one": [84, 90, 50, 29, 49, 44, 30, 98, 31, 66],
"test_two": [68, 78, 28, 80, 45, 56, 53, 93, 31, 66],
"test_three": [42, 35, 30, 40, 28, 85, 80, 99, 38, 48]
}
test_data = pd.DataFrame(data)
test_data["max_1_and_2"] = test_data.apply(lambda row: max(row["test_one"], row["test_two"]), axis=1 )
或者,如果您需要作為示例使用任意函式,那么從架構的角度來看,最好將列處理邏輯與資料框本身分開。在函式中,我們應該只定義自定義處理邏輯,然后將函式應用于資料框:
def max_two(one, two):
return max(one, two)
test_data["max_1_and_2"] = test_data.apply(lambda row: max_two(row["test_one"], row["test_two"]), axis=1 )
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/428723.html
下一篇:pandaseval,回傳資料框
