Skip to main content
 首页 » 编程设计

python之Pandas :将特定功能应用于列并创建其他列

2025年05月04日14www_RR

我有一个 Pandas 数据框df,地理坐标如下:

    lat         lon          
0   48.01025772 -6.15690851  
1   48.02164841 -6.10588741  
2   48.03302765 -6.05480051  
... ...         ... 

我需要将这些坐标转换成不同的系统,并且为此有专门的功能。我计划创建两个新列,df['N'] 与 lat 配对,df['E'] 是与 lon 配对。

函数的外观无关紧要,因此为简单起见,我们称它为f。该函数的运行方式如下:E, N = f(float(lat), float(lon))

有没有一种方法可以遍历 df 的所有行,提取 lat,lon 对(计算它们的转换)并将值分配给相关列?

请您参考如下方法:

您可以使用 apply在 df 上并传递 axis=1,在您的函数中您应该返回一个 Series 并直接分配 2 列:

In [207]: 
def foo(lat, lon): 
    return pd.Series([lat + 10, lon * 100]) 
​ 
df[['new_lat','new_lon']] = df.apply(lambda x: foo(x['lat'], x['lon']), axis=1) 
df 
 
Out[207]: 
         lat       lon    new_lat   new_lon 
0  48.010258 -6.156909  58.010258 -615.6909 
1  48.021648 -6.105887  58.021648 -610.5887 
2  48.033028 -6.054801  58.033028 -605.4801 

根据您的函数正在做什么,可以而且应该避免使用 apply