我有一个迭代每个公司组的代码:
data = pd.DataFrame({'Price': [12, 9, 11, 10, 7, 21, 23],
'Date': ['1991-01-01', '1991-02-01', '1991-03-01', '1991-01-01', '1991-02-01', '1991-03-01', '1991-04-01'],
'Company': ['A', 'A', 'A', 'B', 'B', 'B', 'B']})
data.set_index(['Date', 'Company'], inplace=True)
for company_name, df_company in data.groupby('Company'):
company_index = df_company.index.get_level_values('Date').max()
last_values = df_company.loc[company_index].iloc[0]
# some functions在这里,我试图获得最新的df_company,并将在一些功能中使用它。但是,df_company.loc[company_index].iloc[0]不包括“日期”列。如何用df_company列更改代码以获取最新的"Date"列。谢谢!
发布于 2022-10-25 03:46:18
您可以使用布尔索引:
for company_name, df_company in data.groupby('Company'):
print(company_name)
dates = df_company.index.get_level_values('Date')
# tail is optional, use .iloc[-1] for a Series
last_values = df_company[dates == dates.max()].tail(1)
print(last_values)产出:
A
Price
Date Company
1991-03-01 A 11
B
Price
Date Company
1991-04-01 B 23https://stackoverflow.com/questions/74188840
复制相似问题