如何为pandas数据框中的每一行应用自定义函数

153 浏览
0 Comments

如何为pandas数据框中的每一行应用自定义函数

此问题已有答案:

如何将函数应用于Pandas数据框的两列

我想应用自定义函数并创建一个名为population2050的派生列,该列基于数据帧中已有的两列。

import pandas as pd
import sqlite3
conn = sqlite3.connect('factbook.db')
query = "select * from facts where area_land =0;"
facts = pd.read_sql_query(query,conn)
print(list(facts.columns.values))
def final_pop(initial_pop,growth_rate):
    final = initial_pop*math.e**(growth_rate*35)
    return(final)
facts['pop2050'] = facts['population','population_growth'].apply(final_pop,axis=1)

当我运行上述代码时,我会收到错误。我没有正确使用\'apply\'函数吗?

admin 更改状态以发布 2023年5月25日
0
0 Comments

你的函数,

def function(x):
  // your operation
  return x

调用你的函数时,

df['column']=df['column'].apply(function)

0
0 Comments

你已经接近成功了:

facts['pop2050'] = facts.apply(lambda row: final_pop(row['population'],row['population_growth']),axis=1)

使用lambda函数使你可以保留在函数中列出的特定(有趣的)参数,而不是将它们捆绑在一起。

0