熊猫将功能应用于列和索引组

傅里叶

给定一个df由多个列组成的数据框

Col1   Col2   Col3   Col4   Col5   Col6
   4      2      5      3      4      1
   8      3      9      7      4      5
   1      3      6      7      4      7

我想func对一组列应用一个函数

df.apply(lambda x: func(x[['Col1', 'Col2', 'Col3']]), axis=1)

这按预期工作正常。但是,使用

df.apply(lambda x: func(x.iloc[:,0:3]), axis=1)  

我收到以下错误:

IndexingError :(“索引器过多”,您在索引0处发生)

由于我想使用三列为一组的循环来使函数自动化,因此我更喜欢使用pandas ilocix作为索引方法。

有人可以解释这个错误吗?

耶斯列尔

您需要先删除:in iloc,因为使用Seriesin apply,而不是使用DataFrame

print (df.apply(lambda x: func(x.iloc[0:3]), axis=1))

测试:

def func(x):
    return x.sum()

print (df.apply(lambda x: func(x[['Col1', 'Col2', 'Col3']]), axis=1))
0    11
1    20
2    10
dtype: int64

print (df.apply(lambda x: func(x.iloc[0:3]), axis=1))
0    11
1    20
2    10
dtype: int64

您也可以按以下方式进行检查print(打印不返回任何内容,因此在输出中为None):

print (df.apply(lambda x: print(x.iloc[0:3]), axis=1))
dtype: int64
Col1    4
Col2    2
Col3    5
Name: 0, dtype: int64
Col1    8
Col2    3
Col3    9
Name: 1, dtype: int64
Col1    1
Col2    3
Col3    6
Name: 2, dtype: int64
0    None
1    None
2    None

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

熊猫将功能应用于列

来自分类Dev

熊猫Groupby将功能应用于组

来自分类Dev

熊猫将功能应用于多列多行

来自分类Dev

熊猫-将UTM功能应用于数据框列

来自分类Dev

将功能应用于熊猫数据框的列

来自分类Dev

熊猫数据框将功能应用于整个列

来自分类Dev

熊猫:将功能列表应用于列,每列一个功能

来自分类Dev

熊猫将功能应用于具有前一列值的列

来自分类Dev

将操作应用于熊猫中的组

来自分类Dev

如何将层次结构或多索引应用于熊猫列

来自分类Dev

将熊猫分组聚合应用于多索引

来自分类Dev

将功能应用于熊猫数据框中的特定选定列

来自分类Dev

熊猫分组聚合/将特定功能应用于特定列(np.sum,sum)

来自分类Dev

将功能应用于数据框中的每个组

来自分类Dev

熊猫Groupby将功能应用于关卡

来自分类Dev

将类似功能应用于多级熊猫数据框

来自分类Dev

将功能应用于熊猫数据框的单列

来自分类Dev

将功能按行应用于熊猫数据框

来自分类Dev

熊猫:将不同的功能应用于不同的列

来自分类Dev

根据索引和列将函数应用于数据帧中的每个单元格

来自分类Dev

如何更新/将验证应用于熊猫列

来自分类Dev

熊猫:如何将函数应用于不同的列

来自分类Dev

熊猫:多索引在列和索引之间应用功能

来自分类Dev

熊猫数据框:如何将describe()应用于每个组并添加到新列?

来自分类Dev

将公式应用于多索引列Python

来自分类Dev

将功能应用于Spark Dataframe列

来自分类Dev

将功能应用于数据框列

来自分类Dev

将功能应用于数据框列?

来自分类Dev

将功能应用于R列表中的特定列