【问题标题】:Pandas Select Columns with simple operationsPandas Select Columns 操作简单
【发布时间】:2020-01-17 12:13:43
【问题描述】:

想法是从DataFrame中选择两列,但其中一列需要除以2。我有以下代码:

C = pd.DataFrame({'name':['A','B','C'], 'num1': [99,3,5], 'num2' :[3.5,99,-5]})
C['num1_aux'] = C.num1/2
C['final'] = C[['num1_aux','num2']].min(axis=1)

这给了我结果。 我想知道没有辅助步骤怎么可能,所以在选择中包括操作。这将是这样的:

C['final'] = C[[C.num1/2,C.num2]].min(axis=1)

返回错误:

KeyError: "[Index([(49.5, 1.5, 2.5), (3.5, 99.0, -5.0)], dtype='object')] 都不在 [columns] 中"

该操作有效:(49.5, 1.5, 2.5)。但应用程序已关闭。如果可能的话,在 Pandas 文档中找到这个避免这些简单(或愚蠢)问题的方法会很好。

谢谢!

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    你需要使用.assign()

    C['final'] = C.assign(num1_aux=C['num1']/2)[['num1_aux','num2']].min(1)
    

    输出:

        name    num1    num2    final
    0   A        99      3.5    3.5
    1   B         3     99.0    1.5
    2   C         5     -5.0    -5.0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-13
      • 2017-01-07
      • 1970-01-01
      • 1970-01-01
      • 2021-11-17
      • 2017-01-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多