Pandas 如何使首次出现作为一个新的专栏?

Pandas 如何使首次出现作为一个新的专栏?,pandas,Pandas,我有以下数据帧 import pandas as pd d ={ 'Item':['Carrot','Beans','Potato','Carrot','Potato'], 'Stock':[True,True, True,False,True], 'Price':[91,95,89,55,1005] } df=pd.DataFrame(data=d) print (df) 如何根据列项目将价格作为dataframe df的输出列首次出现 预期产量 Item

我有以下数据帧

import pandas as pd
d ={
    'Item':['Carrot','Beans','Potato','Carrot','Potato'],
    'Stock':[True,True, True,False,True],
    'Price':[91,95,89,55,1005]
}
df=pd.DataFrame(data=d)
print (df)
如何根据列项目将价格作为dataframe df的输出列首次出现

预期产量

     Item  Stock  Price  Output
0  Carrot   True     91      91
1   Beans   True     95      95
2  Potato   True     89      89
3  Carrot  False     55      91
4  Potato   True   1005      89
一种方法是

df['Output']=df['Item'].map(df[::-1].set_index('Item')['Price'].to_dict())
O/p:

说明:

反转数据帧,将索引设置为项,因此首先将值存储在map中,然后替换项中的dict值。

一种方法是

df['Output']=df['Item'].map(df[::-1].set_index('Item')['Price'].to_dict())
O/p:

说明:

反转数据帧,将索引设置为项,这样第一个值存储在map中,然后替换项中的dict值。

使用first:

与第一个一起使用:


df['output']=df.groupby'item.Price.transform'first'df['output']=df.groupby'item.Price.transform'first'@jezrael-我先想到的,但突然间我想到了你,你肯定会在我面前发布这个答案。因此,groupby+first进行了一次新的尝试,以确保与您的方法不同:@jezrael-我首先想到了这一点,但突然想到了您,您肯定会在我面前发布该答案。因此,首先从groupby+进行了一次新尝试,以确保与您的方法不同:
df['Output'] = df.groupby('Item')['Price'].transform('first')
print (df)
     Item  Stock  Price  Output
0  Carrot   True     91      91
1   Beans   True     95      95
2  Potato   True     89      89
3  Carrot  False     55      91
4  Potato   True   1005      89