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