Skip to main content
 首页 » 编程设计

python之像在 Excel 中一样添加 pandas 数据框计算列

2025年05月04日28xiaohuochai

我目前将 panda 用于数据科学目的,这是非常原始的,所以我确信有比我的更好的方法,可以以 excel 方式将列添加到从其他人计算的数据框中。

例如,我有一个数据框,其中有一个质量和一个周期,我想添加一个包含 (M/P)^(1/3) 的列,M 和 P 是换算成合适的单位。然后我写

day_sec=60.0*60.0*24.0 
Msun=1.989 * 10**30 
clean=reduced.dropna() 
v=pd.DataFrame(clean['orbital_period'].apply(lambda x: x**(1/3.0))/clean['star_mass'].apply(lambda x: x**(1/3.0)), columns=list('v'))*day_sec/(Msun**(1/3.0)) 
clean.append(v) 

这甚至不像我想要的那样,而且写和读都非常复杂(在这里,等式非常非常简单)。有什么建议吗?

请您参考如下方法:

你根本不应该在这里使用 apply。您应该将新列编写为一个矢量化操作,如下所示。

clean['v'] = clean['orbital_period'] ** (1/3.0) / clean['star_mass'] ** (1/3.0) *day_sec/(Msun**(1/3.0)) 

看起来可以简化为以下内容:

power = 1/3.0 
(clean.orbital_period / (clean.star_mass * Msun)) ** power * day_sec