[英]How can I add a column to a dataframe with a value conditional on another dataframe?
[英]How can I make a dataframe filtering the dataframe by the max value of a column?
我有這個 dataframe ,它按 object 的名稱分組,我想制作一個新的 dataframe 由column1
的最大值過濾但保持對應的列的值。
Date Column1 Column2 Column3
NAME Id
Object1 1548 2011-04-01 16926.0 1233.0 0.0
1548 2017-08-01 2340.0 224.0 21.0
1548 2017-07-01 2463.0 230.0 26.0
Object2 1549 2017-06-01 2451.0 247.0 27.0
1549 2017-04-01 2347.0 240.0 21.0
這是我想要的結果的一個例子:
Date Column1 Column2 Column3
NAME Id
Object1 1548 2011-04-01 16926.0 1233.0 0.0
Object2 1549 2017-06-01 2451.0 247.0 27.0
使用groupby
df.groupby(['NAME']).apply(lambda x: x.sort_values(['Column1'], ascending=False).head(1))
Object1 0 Object1 1548 2011-04-01 16926.0 1233.0 0.0
Object2 3 Object2 1549 2017-06-01 2451.0 247.0 27.0
我假設您的 dataframe 為 df
首先重置索引。 df = df.reset_index()
您可以使用 max() 來獲取 column1 的最大值。
df1 = df.groupby(["NAME"])['Column1'].max() #returns max values of column1 of 2 names
然后您可以將所有系列放在一個列表中
a=[]
for n in list(df1):
a.append(df[df['Column1'] == n].iloc[0,])
df2= pd.DataFrame(a)
display(df2)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.