当前位置: 首页 > 面试题库 >

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

凌善
2023-03-14
问题内容

我有一个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

我怎么解决这个问题?


问题答案:

适应吧zip。在处理列数据时,它很方便。

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

与使用apply或相比,它不那么复杂且速度更快map。诸如此类的np.dstack速度是的两倍zip,但不会给您元组。



 类似资料:
  • 问题内容: 有时,使用熊猫时,我会得到一系列元组/列表。例如,在进行分组并传递具有多个返回值的函数时,这很常见: 什么是“解包”此结构的正确方法,以便获得具有两列的DataFrame? 一个相关的问题是如何将这个结构或生成的数据框解包到两个Series / array对象中。这几乎可以工作: 但这是 而且需要采取额外的措施来挤压它。 问题答案: 也许这是最愚蠢的(我猜是最pythonic): 如果

  • 在Loc vs. iloc vs. ix vs. at vs. iat的答案中选择?例如。 现在我想要所有的栏目,除了“食物”和“高度”。 我认为类似于的东西可以工作,但是Python返回。 我知道有一种解决方法:。然而,在我的现实生活中,我有数百列要删除。键入所有列名是如此低效。 我期待类似于R语言中的或。 还阅读了选择/排除Pandas中的列集。

  • 本文向大家介绍如何更改 pandas dataframe 中两列的位置,包括了如何更改 pandas dataframe 中两列的位置的使用技巧和注意事项,需要的朋友参考一下 如何更改 pandas dataframe 中两列的位置: 把其中的某列移到第一列的位置。 原来的 df 是: 要将 Mid 这一列移动到第一列? 解决办法:(使用 ix ) 法一: 法二: 最终的处理结果: 以上这篇如何更

  • 有谁能帮上忙吗?

  • 问题内容: 我有一个元组列表,例如 我想将它们放入一个熊猫数据框,其中第一行命名为行,第二列命名为列。看来,处理行名称的方法类似,但如何处理列以获得2x2矩阵(前一组的输出为3x4)?是否还有一种更智能的方式来处理行标签,而不是显式地忽略它们? 编辑 似乎我将需要2个数据框-一个用于平均值,一个用于标准差,对吗?还是可以在每个“单元格”中存储值列表? 问题答案: 您可以在创建后旋转DataFram

  • 我正在尝试使用一个函数从pandas数据帧中的多个列计算多个列。该函数接受三个参数-a-、-b-和-c-,并返回三个计算值-sum-、-prod-和-quot-。在我的pandas数据框架中,我有三个列-a-、-b-和-c-我想从中计算列-sum-、-prod-和-quot-。 我所做的映射只有在正好有三行时才起作用。我不知道出了什么问题,尽管我认为这与选择正确的轴有关。有人能解释一下发生了什么,