【问题标题】:How do I work on a slice of data in Pandas?如何在 Pandas 中处理一段数据?
【发布时间】:2019-12-10 06:16:36
【问题描述】:

我有一个 pandas 数据框,我想连续处理它的多个切片。例如,如果我有一个带有“人”列和一些数据的数据框 对于每个人,我想对与那个人有关的所有行做一些事情

我认为我曾经能够做到这一点:

people = df['person'].unique().tolist()
for p in people:
    tmpDF = df[df['person']==p]
    // Do something to tmpDF

然后原始 df 将包含所有更改。 Pandas 会给我一个关于链分配的警告,但它会做我想做的事情。

现在,它给我一个关于更改副本的警告,并告诉我使用.loc。但是,这意味着我每次做某事时都需要重新切片。我想在循环中制作一次切片,然后对切片做一些事情。我该怎么做?

【问题讨论】:

    标签: python pandas dataframe slice


    【解决方案1】:

    更新数据时只需要使用loc。例如,而不是

    tmpDF['abc'] = 'xyz'
    

    做:

    df.loc[tmpDF.index, 'abc'] = 'xyz'
    

    【讨论】:

    • 看起来比应该的要笨重,但它确实有效。谢谢!
    猜你喜欢
    • 2016-02-14
    • 2017-02-17
    • 1970-01-01
    • 2020-05-31
    • 2020-06-13
    • 1970-01-01
    • 2021-08-14
    • 1970-01-01
    • 2020-11-25
    相关资源
    最近更新 更多