【问题标题】:Concatenating two floats into one column in pandas在熊猫中将两个浮点数连接成一列
【发布时间】:2017-03-01 07:35:35
【问题描述】:

如果我有一个具有如下浮动列的数据框

Pickup_longitude    Pickup_latitude
1176807 -73.929321  40.746761
753359  -73.940964  40.679981
1378672 -73.924011  40.824677
302960  -73.845108  40.754841
827558  -73.937073  40.820759

我想将 lat-long 连接为 ("lat","long") 在一列中。

我为示例三行做了下面的代码,但我想知道是否有更快的方法而不是使用 .astype(str) 转换为字符串。我最初尝试使用 str() 但这也将索引值带入其中。

trip_data_sample['lat_long_pickup']=trip_data_sample["Pickup_latitude"][:3].astype(str)+","+\
trip_data_sample["Pickup_longitude"].astype(str)

【问题讨论】:

  • 这是一个非常好的方法——可读且高效,使用标准的 pandas 方法。我认为没有任何理由期望另一个函数比 .astype(str) 更快地转换为字符串。您是看到实际的性能问题,还是只是想找到最快的方法?

标签: python


【解决方案1】:

您可以使用列表推导创建元组并对数据框进行索引:

df['lat_long'] = [', '.join(str(x) for x in y) for y in map(tuple, df[['Pickup_latitude', 'Pickup_longitude']].values)]

df 现在看起来像这样:

>>> df
         Pickup_longitude  Pickup_latitude               lat_long
1176807        -73.929321        40.746761  40.746761, -73.929321
753359         -73.940964        40.679981  40.679981, -73.940964
1378672        -73.924011        40.824677  40.824677, -73.924011
302960         -73.845108        40.754841  40.754841, -73.845108
827558         -73.937073        40.820759  40.820759, -73.937073

【讨论】:

  • 不是字符串。我们想要的是“48.355328,11.7917104”。像这样的东西要进一步传递
猜你喜欢
  • 1970-01-01
  • 2013-08-06
  • 1970-01-01
  • 2020-10-13
  • 1970-01-01
  • 1970-01-01
  • 2022-10-06
  • 2016-02-11
  • 2012-08-05
相关资源
最近更新 更多