簡體   English   中英

使用 group by 將更改應用於整個 dataframe

[英]Applying changes to entire dataframe using group by

我正在嘗試對 dataframe 應用更改,以獲取僅通過使用 groupby 返回的值(據我所知)。 所以我想要找到每個公司的最小日期值,以便我可以將數字 0 應用於多個列中的第一個值(在本例中為 df2['Research and Development Expense Lag'] 和 df2['Capital Expenditures Lag' ])。 這是我到目前為止所擁有的,一個返回每個公司的最小日期值的 groupby:

df2.groupby('Ticker Symbol').apply(lambda d: \
            d[d['Data Date'] == d['Data Date'].min()])

你在正確的軌道上。 您可以獲取這些行的索引值,然后將它們與.loc[]一起使用來更改這兩列中的值:

df2.loc[df2.groupby('Ticker Symbol').apply(
        lambda d: d[d['Data Date'] == d['Data Date'].min()]
    )
    .index
    .get_level_values(1),
    ['Research and Development Expense Lag', 'Capital Expenditures Lag']
] = 0

.get_level_values(1) function 用於提取 MultiIndex 的第二級。 第一級將包含Ticker Symbol值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM