【问题标题】:How to run array operations when elements in a pandas series are lists当熊猫系列中的元素是列表时如何运行数组操作
【发布时间】:2021-08-26 14:57:02
【问题描述】:

在我正在参加的课程中,讲师在 Jupyter Notebook 中运行了以下代码-

ww2_cas = Series([8700000, 4300000, 3000000, 2100000, 400000], index = ['USSR', 'Germany', 'China', 'Japan', 'USA'])
ww2_cas[ww2_cas > 4000000]

程序返回了一个熊猫系列与伤亡超过400万的国家

我尝试通过创建以下系列并对其进行数组操作来对此进行试验,但出现错误

marks = Series([[33,67,70,73],[90,82,43,76],[56,79,82,55]], index=["John", "Kiara", "Charles"])
marks[(sum(marks)/4) >= 70]

错误是:

TypeError:+ 的不支持的操作数类型:“int”和“list”

有没有办法像讲师的示例那样在 1 行中执行此操作,或者我是否必须创建另一个系列来容纳索引的真/假值

【问题讨论】:

    标签: python arrays pandas series


    【解决方案1】:

    通过apply()尝试:

    out=marks[marks.apply(sum)/4>=70]
    

    out=marks[marks.apply(lambda x:(sum(x)/4) >= 70)]
    

    说明:

    此代码marks[(sum(marks)/4) >= 70] 不起作用,因为标记内的值属于list 类型

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-11
    • 2017-09-10
    • 2023-01-19
    • 2022-11-02
    相关资源
    最近更新 更多