aho*_*osh 0 python apply multiple-columns pandas
我有一个带有列Longitude和的pandas数据框Latitude.我想X和Y他们相处.utm调用from_latlon中有一个函数可以执行此操作.它接收Latitude和Longitude并给出[X,Y].这是我做的:
def get_X(row):
return utm.from_latlon(row['Latitude'], row['Longitude'])[0]
def get_Y(row):
return utm.from_latlon(row['Latitude'], row['Longitude'])[1]
df['X'] = df.apply(get_X, axis=1)
df['Y'] = df.apply(get_Y, axis=1)
Run Code Online (Sandbox Code Playgroud)
我想定义一个函数get_XY并from_latlon只应用一次来节省时间.我看了一下这里,这里和这里,但我找不到用一个apply函数制作两列的方法.谢谢.
您可以从函数返回一个列表:
d = pandas.DataFrame({
"A": [1, 2, 3, 4, 5],
"B": [8, 88, 0, -8, -88]
})
def foo(row):
return [row["A"]+row["B"], row["A"]-row["B"]]
>>> d.apply(foo, axis=1)
A B
0 9 -7
1 90 -86
2 3 3
3 -4 12
4 -83 93
Run Code Online (Sandbox Code Playgroud)
你也可以退回一个系列.这允许您指定返回值的列名:
def foo(row):
return pandas.Series({"X": row["A"]+row["B"], "Y": row["A"]-row["B"]})
>>> d.apply(foo, axis=1)
X Y
0 9 -7
1 90 -86
2 3 3
3 -4 12
4 -83 93
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7761 次 |
| 最近记录: |