FaC*_*fee 4 python loops dataframe pandas
我有一个df带有地理坐标的熊猫数据框,如下所示:
lat lon
0 48.01025772 -6.15690851
1 48.02164841 -6.10588741
2 48.03302765 -6.05480051
... ... ...
Run Code Online (Sandbox Code Playgroud)
我需要将这些坐标转换为不同的系统,并为此提供专用功能。我打算创建两个新列,df['N']这与配对lat,并且df['E']这是搭配lon。
函数的外观无关紧要,因此为简单起见,我们将其称为f。该函数的操作如下:E, N = f(float(lat), float(lon))
有没有办法遍历 的所有行df,提取lat,lon对,(计算它们的转换)并将值分配给相关列?
您可以apply在 df 和 pass 上使用axis=1,在您的函数中,您应该返回 aSeries并直接分配两列:
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
Run Code Online (Sandbox Code Playgroud)
apply可以并且应该避免使用,这取决于您的功能正在做什么