小编典典

如何从 Pandas 中的两列形成元组列

all

我有一个 Pandas DataFrame,我想将 ‘lat’ 和 ‘long’ 列组合成一个元组。

<class 'pandas.core.frame.DataFrame'>
Int64Index: 205482 entries, 0 to 209018
Data columns:
Month           205482  non-null values
Reported by     205482  non-null values
Falls within    205482  non-null values
Easting         205482  non-null values
Northing        205482  non-null values
Location        205482  non-null values
Crime type      205482  non-null values
long            205482  non-null values
lat             205482  non-null values
dtypes: float64(4), object(5)

我尝试使用的代码是:

def merge_two_cols(series): 
    return (series['lat'], series['long'])

sample['lat_long'] = sample.apply(merge_two_cols, axis=1)

但是,这返回了以下错误:

---------------------------------------------------------------------------
 AssertionError                            Traceback (most recent call last)
<ipython-input-261-e752e52a96e6> in <module>()
      2     return (series['lat'], series['long'])
      3 
----> 4 sample['lat_long'] = sample.apply(merge_two_cols, axis=1)
      5

AssertionError: Block shape incompatible with manager

我怎么解决这个问题?


阅读 156

收藏
2022-07-06

共1个答案

小编典典

适应zip. 在处理列数据时它会派上用场。

df['new_col'] = list(zip(df.lat, df.long))

它比使用applyor更简单、更快捷map。likenp.dstack的速度是 的两倍zip,但不会给你元组。

2022-07-06