我想在pandas dataframe的每一行上运行一个函数,并在派生的列score中输出它的值:例如,下面显示的函数是一个lambda,但该函数应该能够按父dataframe列标签编制索引并访问列名,如row['col1'],但将一个series对象传递给lambda函数,该函数将丢失列标签信息:
例如:
def calculate(row):
cols=row.columns
loc=row['loc']
h=row['h']
isst=row['Ist']
Hol=row['Hol']
return loc+h+len(cols)
a['score']=a.apply(lambda row:calculate(row),axis=1)
给出:
^{pr2}$那么如何访问命名序列,比如lambda函数中的命名元组?在
快速破解的方法是:
a['score']=a.apply(lambda row:calculate(makedict(row,row.index)),axis=1)
makedict函数将为每一行创建一个字典,以便可以通过列标签在函数中访问它。但是有熊猫的方式吗?在
为什么不:
最后找到了有助于此的tou-dict函数:
相关问题 更多 >
编程相关推荐