<p>下面是一个使用<strong><code>DataFrame.apply()</code></strong>函数的解决方案<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.apply.html" rel="nofollow noreferrer">Documentation can be found here.</a></p>
<p>由于缺少数据和对API的访问,我假装您是数据集,尽管效果很差。但这演示了如何使用<code>apply()</code>函数从函数的返回值填充<code>lat</code>列</p>
<h3>基本(黑客)设置:</h3>
<pre><code>import pandas as pd
data = {'link': ['www.abc.com/1', 'www.abc.com/2', 'www.abc.com/3'],
'sqft': [1111, 2222, 3333],
'rent': ['$1111', '$2222', '$3333'],
'bedroom': [1, 2, 3],
'address1': [[34.052235, -118.243683], [33.052235, -117.243683], [32.052235, -115.243683]],
'address2': [[32.715736, -117.161087], [31.715736, -116.161087], [30.715736, -115.161087]],
'address3': [[33.541679, -117.777214], [32.541679, -116.777214], [31.541679, -115.777214]],
'bathroom': [1, 2, 3]}
# Create dataset
df = pd.DataFrame(data)
def return_coordinates(address1, address2, address3):
"""Return the first value of the ``address1`` parameter."""
return address1[0]
</code></pre>
<h3>使用<code>apply</code>函数:</h3>
<p>这将广播<code>return_coordinates</code>函数返回到数据帧的<code>lat</code>列</p>
<pre><code>df['lat'] = df.apply(lambda x: return_coordinates(x['address1'], x['address2'], x['address3']), axis=1)
</code></pre>
<h3>原始数据集:</h3>
<pre><code> address1 address2 address3 bathroom bedroom link rent sqft
0 [34.052235, -118.243683] [32.715736, -117.161087] [33.541679, -117.777214] 1 1 www.abc.com/1 $1111 1111
1 [33.052235, -117.243683] [31.715736, -116.161087] [32.541679, -116.777214] 2 2 www.abc.com/2 $2222 2222
2 [32.052235, -115.243683] [30.715736, -115.161087] [31.541679, -115.777214] 3 3 www.abc.com/3 $3333 3333
</code></pre>
<h3>使用新的<code>lat</code>列:</h3>
<pre><code>address1 ... lat
0 [34.052235, -118.243683] ... 34.052235
1 [33.052235, -117.243683] ... 33.052235
2 [32.052235, -115.243683] ... 32.052235
</code></pre>
<p>从结果中可以看到,<code>apply</code>函数为每一行返回<code>address1</code>字段的第一个值</p>