如何从 Pandas 中的两列形成元组列 [英] How to form tuple column from two columns in Pandas
本文介绍了如何从 Pandas 中的两列形成元组列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个 Pandas DataFrame,我想将 'lat' 和 'long' 列组合起来形成一个元组.
I've got a Pandas DataFrame and I want to combine the 'lat' and 'long' columns to form a tuple.
<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)
然而,这返回了以下错误:
However, this returned the following error:
---------------------------------------------------------------------------
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
我该如何解决这个问题?
How can I solve this problem?
推荐答案
熟悉 zip
.它在处理列数据时派上用场.
Get comfortable with zip
. It comes in handy when dealing with column data.
df['new_col'] = list(zip(df.lat, df.long))
它比使用 apply
或 map
更简单、更快捷.np.dstack
之类的东西比 zip
快两倍,但不会给你元组.
It's less complicated and faster than using apply
or map
. Something like np.dstack
is twice as fast as zip
, but wouldn't give you tuples.
这篇关于如何从 Pandas 中的两列形成元组列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文